Implement object pool for lifecycler

Lifecycler currently creates a lot of extra objects for transactions
and transaction items. This change adds an object pool, so that all
objects that are used in lifecycler will be reused as soon as a
transaction is scheduled.

This also fixes parcelling/unparcelling of IVoiceInteractor in launch
activity transaction item.

Bug: 64797980
Bug: 69977460
Test: android.app.servertransaction.ObjectPoolTests
Change-Id: I49125e28447f3565338b61dab6de843fcc1ca9cd
29 files changed