Add logging and some tidying of ID API client
Add Exception handling to Http classes

We now return Either in more places. This lets us use Left to describe
exceptions in the Http library to save the Api developer having to
catch all the possible exceptions for each supported HTTP library.
Add tests for JsonBodyParser
Add headers to the Auth trait for more flexibilty
Adding tests for the Http implementations
Add support for async Http

This is done using a higher kinded type in Http. We use the Identity
Monad for syncronous APIs and Scala's Future Monad for asyncronous.
Add dispatch Http implementation
Add abstraction so APIs can be created for (a)sync

APIs can now be created in a Sync/Async agnostic manner. That is, by
extending Http[F] rather than Http[Id/Future]. This allows the API
client user to choose the type of Http implementation they wish to
use.
Begin to add tests for the IdApi client
Remove [F[_]] in favour of Futures everywhere

Removes the Monad utils in favour of a purely Future-based
approach. This is achieved using Promise to provide synchronous
responses, along with a local thread execution context.

Also adds tests for the newly Futured IdApi and fleshed out the API to
meet the new tests.
Merge remote-tracking branch 'origin/master' into af-identity-signin-with-scala-client
Merge branch 'af-identity-signin-with-scala-client' into signin-form
Plug IdApiClient into SigninController

Also adds tests for the signin controller
Merge remote-tracking branch 'origin/frj-siginout' into signin-form-with-id-api

Conflicts:
	identity/conf/routes
Remove ID from dev-build

Identity should be run on its own server. This has been documented and
configured.
Match signin form messaging inline to requirements
Merge remote-tracking branch 'origin/master' into signin-form-with-id-api
Provide config to IdApiClient

It now points at the correct API root, provided by the configuration.

Also corrects the method for the client's authBrowser, which involves
introducing optional POST bodies.
Merge remote-tracking branch 'origin/master' into signin-form-with-id-api
Merge remote-tracking branch 'origin/master' into signin-form-with-id-api

Conflicts:
	identity/app/controllers/SigninController.scala