first pass at async request handling

This is far from optimal but tests are passing so it is at least minimally
functional. There are a couple key changes in this commit.

IntravertCassandraServer registers an event bus handler that listens for
requests posted to "json-request". The handler calls
IntraService.handleIntraReq and then replies to the message with the response
converted to a JsonObject.

IntraHandlerJson sends a message on the event bus and provides a handler that
simply ends the http response.
initial support for processing a request through the event bus

When IntraHandlerJson gets called it sends a message on the event bus to the
address "request.json". The handler registered at that address sends a separate
message on the bus for each operation. When all of the operations have
completed we call the reply handler provided with the message sent to the
request.json address. That reply handler ends the http response.

So far I have this working with an initial test in RawJsonITest. Still several
things to be worked out like error handling and most importantly implementing
handlers for each of the defined operations.
adding set keyspace and create column family handlers

There is another change with this commit to point out. In the sync version of
these operations the set keyspace command sets the keyspace in a IntraState
object that lives for the duration of the request. I haven't yet bothered to
serialize an IntraState object, but put I have added a JsonObject named state
that is included in the message sent to each operation handler.

One drawback right now is that the operation handler has to be sure to include
the state in its response message. I will look to remove that requirement in a
future commit.
removing requirement for operation handlers to include state object is reply

OperationsRequestHandler now has a state member variable of which a copy is
made and sent in the message to each operation handler. If an operation
handler includes a state object in its response, it is merged back into
OperationsRequestHandler.state.
adding operation handler for listing keyspaces
fixing json property name, was using opRes but should be opsRes

Also adding a system property that is used in IntraHandlerJson that allows for
running RawJsonITest aganst the new async impl as well as against the sync
impl. The tests that are currently enabled pass for both implementations.
adding support for operation timeouts using vertx timers
moving operation handlers into their own top-level classes
adding more operation handlers to provide initial support for GET and SET
adding slice operation handler
adding cql query operation handler
refactoring test methods to use submitRequest helper method
added initial counter support. Failing test on concurrentTimeoutException, not sure why yet. addresses issue #44
merged in TypeHelper changes
got counters working on simple read write path
IC2 does smile.yea....
Merge pull request #106 from zznate/counter-verb

Counter verb
Merge pull request #107 from zznate/ic2smile

IC2 does smile.yea....
Merge branch 'master' into async-requests

Conflicts:
	src/main/java/org/usergrid/vx/experimental/IntraOp.java
	src/main/java/org/usergrid/vx/experimental/IntraReq.java
	src/main/java/org/usergrid/vx/experimental/IntraRes.java
	src/main/java/org/usergrid/vx/experimental/TypeHelper.java
updating CQL support and test coverage

Adding a more comprehensive CQL test in RawJsonITest that creates a table,
inserts data, and then queries for it. The query results getting returned
looked like,

{
  "name":"username",
  "value":"jsmith"
},
{
  "name":"age",
  "value":"\u0000\u0000\u0000\u001E"
},
{
  "name":"fname",
  "value":"John"
},
{
  "name":"lname",
  "value":"Smith"
}

There are two problems with this. The first is that the value for the age
column was not properly converted. The second issue is that we are not
tranposing the results as you would expect with other CQL clients like cqlsh.
The above results in cqlsh would look something like,

username | fname | lname | age
------------------------------
jsmith     John    Smith   30

This commit returns the transposed results that look like,

{
  "lname":"Smith",
  "username":"jsmith",
  "age":30,
  "fname":"John"
}

Instead of returning 3 JSON objects, we return just the one. And also note that
the type conversion for the age column is handled. I really think this is the
way to go for the CQL query operation. If the client does not work the
transposed results then he can use a GET or SLICE operation.