Android: encapsulate service binding manipulation within BindingManager.

This patch simplifies the interface of BindingManager by hinding the management
of individual service bindings inside it. Currently BindingManager exposes
methods for:
- removal of the initial binding
- adding strong binding
- removing strong binding

the patch instead exposes entry points for two signals:
- service works in background
- service works in foreground

and the binding management logic, including keeping an initial binding until
service visibility is determined, is entirely encapsulated within
BindingManager.

This lays ground for switching the Android binding management to be driven by
the cross-platform SetProcessBackgrounded() signal.

BindingManager itself is refactored and more logic is pushed down to
ManagedConnection, so that there is no need to expose the bare
ChildProcessConnection outside of ManagedConnection anymore.

BUG=325896

Review URL: https://codereview.chromium.org/101123006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242417 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 242417