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.