Make the generic "can't call" error message more specific.

Added support for a bunch of different call fail cases reported via the
CallStateException.

Should make it more informative than the usual "can't call" message.

Test: Added unit tests for throw conditions.
Test: Manually tested scenarios.
Bug: 116453747
Bug: 73902028
Change-Id: Ia3b3d8ecb204d632d2b3e97498d2c1ddf4c2b399
3 files changed