extract Throttle logic

Now we are able to given a special Throttle implementation, or use the Time one.
Enable config tuning via console on Ctrl+C
Merge pull request #35 from soundcloud/reactive

[WIP] Pry console on Ctrl+C for pausing or amending config
Revert "Merge pull request #35 from soundcloud/reactive"

This reverts commit 68d555b669a7f6a8aa8e0a5814389695955eb867, reversing
changes made to 5d764384414d9ea75f322dc6505feceaf0a4adf1.
Merge pull request #46 from arthurnn/throttle_refactor

extract Throttle logic
Ensure Lhm.cleanup removes temporary triggers

In the event of a failed migration, triggers may not have
been dropped properly. To avoid errors, we must drop
the lhm triggers before the lhm tables.
Merge pull request #51 from soundcloud/cleanup_triggers

Ensure Lhm.cleanup removes temporary triggers
Rename throttle option to throttler
Move legacy throttle logic to invoker
Have chunker read stride from Throttler
Merge pull request #52 from soundcloud/throttler

Implement ability to control timeout and stride from Throttler
Add if exists to clean up drops
Allow new minitest versions

We need argument matchers for mocks

This changes the way we need to load minitest
Fix chunker to handle stride changes during run
Expect options call twice

MiniTest::Mock is now stricter, apparently.
Merge branch 'chunker-handle-stride-changes'
Adding a better output printer, a percentage one.

Also the Dot legacy one is avaiable for use
Update spec readme

Add BUNDLE_GEMFILE explanation on spec/readme
Merge pull request #56 from arthurnn/spec_readme

Update spec readme
Simplifying local development setup

Add development setup instructions
updating README for proper Gemfile use
Default password to nil if no config provided
Remove Gemfile-specified dev dependencies from gemspec