SCHEMA-886. Implement asynchronous writing using AsyncHBase.

Implemented and tested AsyncHBaseAsyncKijiBufferedWriter to
support asynchronous writing to a Kiji table.

issue: https://jira.kiji.org/browse/SCHEMA-886
I don't really like throwing the exception here because it means that if the lock was initialized it will be left locked. In cases where you wouldn't strand a resource I think this is a fine pattern. You should throw something in the case of interrupted exceptions because otherwise execution will continue after the catch even though the code in the try block may not have completed correctly.