[Feature] Add Querying capability to Keen Client

### Overview

The Keen Gem did not have a facility to perform queries using the Keen client, and since we (at Ifeelgoods) have been using Keen.io for a while and built our own library to handle querying, we decided to help everyone out there by merging our code into the official Keen API Gem.

### Queries Implemented

The methods: *count, count_unique, minimum, maximum, sum, average, select_unique* and *funnel* are supported (though *extraction* methods are not implemented, it would be trivial to extend the keen querying capabilities to handle the extraction responses).

All querying are performed synchronously (synchronous querying is probably the desired behaviour in most use cases).

### Caching

Since we are using Redis as our caching backend, we decided it would be nice to build a relatively generic way for queries to be cached by any caching backend. All that's needed is for the cache handler to support, at minimum, the #get and #set methods. Support for #expire can be used for setting explicit expiration for caches.

An example using it with Redis
```ruby
require 'redis' # Not required if Redis is installed as a Gem and loaded automatically

$redis = Redis.new( :host => "localhost", :port => 6379)

response = Keen.count( { :event_collection => "my_app_events" }, $redis, true, 600)
```

All calls to Keen will first check $redis cache for the existence of the result (as set by the third param, 'true'). If a result is found, it is returned immediately. If none is found, a Keen query is performed, and the result cached. In this particular example, the cache is set to expire after 600 seconds (10 minutes).

### Other changes

Preliminary documentation have been written following the YARD format (www.yardoc.org) for both #count and #count_unique.

Rspec tests have also been implemented for #count and #count_unique.

README.md has been updated with a simple example of using the #count query.