Refactor database to be its own class

This allows us to move all database knowledge (such as queries and
column names) into a single class. A compatibility API is exposed for
now.
Add more compatibility APIs to the database class
Add id column for log_parts table
Fix create_table compat API
Refactor ProcessLogPart to talk to DB class
Pass pusher client to ProcessLogPart's initializer
Make the Sequel connection available to the Rakefile
Rename mark_as_archiving method

Since the method can also mark as *not* archiving, the name was a bit
misleading.
Add tests for secure pusher channels

The change for this test was introduced in
c6d24e412df39c4a09a1923df6a27199e23a4d42
Add a .ruby-version file

This file is used by most of the large ruby switchers. Since travis-logs
is only really running on JRuby, I feel like including this in the
repository is helpful.
Change RSpec output format

The doc format is a little more verbose, making it easier to see what is
going on as the test is running.

Also threw in some colours because I like colours.
Make the tests more explicit

One can take DRY a little too far, and I think this is better as it's
hard to make the tests completely "dynamic", so if you change the
payload then the tests always pass (as long as the payload is valid).
Test that metrics are being marked
Test that behaviour is correct for invalid log IDs
Update the Gemfile

Removed dependencies that are no longer used and added new ones.
Fix delegate method

The [] method on a Sequel object can take more than one argument, which
the aggregate_logs service depends on.
Extract Pusher logic into its own class

This class is responsible for the application-specific pusher logic,
such as figuring out the channel name.
Move creation of Pusher client to Pusher helper
Merge branch 'master' into hh-refactor
Extract database calls for aggregate service