Improve error handling when agent fails on startup.

* The error was swallowed by the agency agent of failing agent, thus
the Host Agent had no way of knowing that there is no point in running
the proposal protocol. Fix that.
* Use error.handle_failure() helper to format the error message nicely.
* Remove layers of delegation. StartAgent task now uses IAgency interface
directly.
Fix parsing port option of standalone db script.
Standalone agent notifies the master agency about the reason for failing
when the exception is raised from initiate_agent().