Camera2: CameraManager refurbishing and error management

- Invoke availability listeners when first added
- Handle camera service crashes
 - Listen to service death
 - Attempt to rebind on every call if service died
 - If service is still dead, act as if no cameras are connected
- Fix bug in DeviceImpl that prevented proper handling of errors on open
- For clarity, don't UncheckedThrow for exceptions that are already unchecked

Bug: 16514157
Bug: 16483815
Bug: 16483222
Bug: 16561237

Change-Id: I3d54de1204f5a863882cf675fcee6280d53c4039
4 files changed