Move towards event-driven JS on about:sync

Removes two callback-based about:sync functions and replaces them with
alternatives that are more event-based.

Replaces getAboutInfo and the onServiceStatusChanged event with
requestUpdatedAboutInfo and an onAboutInfoUpdated event. Unlike its
predecessor, the requestUpdatedAboutInfo function does not take a
callback. Instead, it requests that the message handler issue an
onAboutInfoUpdated event. It is assumed that the caller of this
function is already subscribed to receive a callback for this event.
The onAboutInfoUpdated event differs from its predecessor in that
it provides a 'details' member that contains the updated aboutInfo.

This CL also makes the SyncInternalsMessageHandler observe
ProfileSyncService events directly, rather than having these events
routed through the JsEventHandler.

Replaces getListOfTypes with requestListOfTypes. The new function
does not take a callback. The response will arrive in the form of
an onReceivedListOfTypes event.

BUG=334431, 328606

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

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