[Feature] Managing saved queries

### Overview

With the current state of the keen-gem, this is not possible to manage saved queries.
To achieve this we need an object to represent a query, to access to the settings outside of the client class and share helpers methods.

These modifications should not change any current behaviors

### Managing saved queries

Managing saved queries require MASTER_ID.

To save a query, instead of calling your query:

```ruby
Keen.sum("purchases", :target_property => "price")
```
call:
```ruby
saved_query = Keen::SavedQuery.new('name_of_the_query')
saved_query.put('sum','purchases', :target_property => "price")  # this send to keen the parameters of the query
saved_query.result # to get the result
saved_query.delete # to delete the saved query from Keen
```

#### Convenient methods
Get the result of a saved query
```ruby
Keen::SavedQuery.result('name_saved_query')
```
Delete a saved query
```ruby
Keen::SavedQuery.delete('name_saved_query')
```
Create a saved query from a query:
```ruby
query = Keen::Query.new(query_name, event_collection, params)
query.saved_query('name_saved_query') # Save the query in Keen and return a Keen::SavedQuery object
```
### Other changes

The config variables are now stored in a Config class.
Helpers methods moved to helpers file.