Add HBase protocol buffers to the compilation process.

This assimilates the protocol buffer definitions from HBase's source
tree into AsyncHBase's build process, with very minimal changes made
on the proto files.

This introduces a dependency on Google's protobuf-java library.

Thanks to Michael Stack, Elliott Clark, and Viral Bajaria, who
helped with the initial versions of this change.
De-serialize the HBase 0.95+ znode that points to META.
Fix the process of META lookups for HBase 0.95 and up.

There is no longer any -ROOT- region in 0.95 and up, so when we find
a /meta-region-server znode in ZK, we now set a flag to remember that
there is no -ROOT- region, and we treat the .META. region as the -ROOT-
region.
Send the proper "hello" message to HBase 0.95 and up.

Upon connecting to HBase we need to send a "hello" message, which
is now partly a protocol buffer.
Remove some unused helper code to create buffers.

We never need to use dynamic buffers as we can always produce a
good conservative estimate of how many bytes we need to serialize
an RPC.
Update the per-RPC header for HBase 0.95+.
Refactor how RPC objects know what RPC method they're for.

Introduce a new internal method to HBaseRpc, method(version), which
must return the RPC method name to invoke, given the HBase protocol
version of the server we're connected to.

Previously, all HBaseRpc instances had a `method' byte array in the
object that carried the name of the method to invoke (e.g. "get" or
"put").  Although the names were only created once (statics) this
still added one reference to each and every RPC object.

With HBase 0.95+ compatibility, many RPCs have changed their names
and thus it makes sense to standardize on an internal API that RPCs
must have to declare the name of the RPC method they should invoke
as a function of the HBase protocol version.
WIP: Convert META lookups to protobuf.