Agent hierarchy
===============

Service		unique name
Interface	org.chromium.flimflam.Agent
Object path	freely definable

Methods		void Release()

			This method gets called when the service daemon
			unregisters the agent. An agent can use it to do
			cleanup tasks. There is no need to unregister the
			agent, because when this method gets called it has
			already been unregistered.

		void ReportError(object service, string error)

			This method is called to report an error to the
			user. The return value can be used to trigger
			a retry of the failed transaction.

			Possible Errors: [service].Error.Retry

		dict RequestInput(object service, dict fields)

			This method is called when connecting to a
			service requires additional input. For example a
			passphrase or a challenge response for 2-factor
			authentication.

			The dictionary of fields passed to the caller
			specifies known and/or missing parameters
			that should be filled in.  These may be used
			to prompt a user or to initiate automated data
			collection (e.g. to a bluetooth-connected dongle).
			The return value is the same dictionary with
			the values updated to reflect any input.

			Alternatively an error indicating that
			the request got canceled can be returned.

			Possible Errors: net.connman.Agent.Error.Canceled

		void Cancel()

			This method gets called to indicate that the agent
			request failed before a reply was returned.
