Add multi client ror support

Detailed design in http://go/multi-client-ror. This cl adds internal
states in RecoverySystemService to keep track of multiple RoR
callers. The general principles works as:
1. Each client should call prepare before reboot
2. One client cannot clear the preparation of another client
3. If multiple clients have prepared the update, the subsequent
   reboot will be first come, first served.

Bug: 170664917
Test: atest FrameworksServicesTests:RecoverySystemServiceTest

Change-Id: Ic8c7438f8a0300870ceed8857c46425fc0d006b9
5 files changed