Use a FuturePool to execute API requests.

The default Dynamo client uses blocking requests which means
we need to execute the api calls on background threads so as
to not block the main thread.

At this point it uses a FuturePool backed by a
 hard coded fixed size thread pool. Work can be done in the
future to make the size of the threadpool configurable