SCHEMA-795. Design Async API.

Design an asynchronous API and create interfaces for the API.

issue: https://jira.kiji.org/browse/SCHEMA-795
`) throws ... {` should be on a single line, and all of these parameters should be final.