Add cucumber-core as runtime dependency

Closes #631
Remove cruft from cucumber config file
Add Gemnasium badge
Fix version headings
Merge pull request #632 from snowblink/patch-1

Fix version headings
Implement tag limits
Update tag limit scenarios to red/green limit failures
Only use TagLimits::Filter when tag limits are configured
Cast tag limits to Hash because jruby
Remove unused ivar
Merge pull request #633 from pdswan/experiments_with_limited_tags

Implement tag limits
Use Hash block initializer to improve readability
Merge pull request #638 from pdswan/fixup

Use Hash block initializer to improve readability
Get rid of Printer abstraction - bad idea
Start using a different style for printing to formatter
Add Ruby 2.1 to build
Add this branch to the build
Match less explicitly to avoid Ruby 2.1.0+ bug

See https://bugs.ruby-lang.org/issues/9285 for more details.
Add explicity ruby 2.1 support

Various parts of the backtrace rewriting code require an explicit
version of Ruby to be set, which requires hard coding for every minor
Ruby release.

Going forward we should reverse the check in `instance_exec.rb` to
target older ruby versions not newer ones
Filter new backtrace paths for Ruby 2.1+

With Ruby 2.1+ the timeout code has changed, so you get additional
lines appearing when Cucumber features fail due to a timeout exception:

``` ruby
Timed out calling wire server with message 'invoke' (Timeout::Error)
/Users/chris/.rbenv/versions/2.1.0/lib/ruby/2.1.0/timeout.rb:82:in `block in timeout'
/Users/chris/.rbenv/versions/2.1.0/lib/ruby/2.1.0/timeout.rb:70:in `catch'
/Users/chris/.rbenv/versions/2.1.0/lib/ruby/2.1.0/timeout.rb:70:in `timeout'
```

This change adds `lib/ruby` to the list of filtered backtraces to
prevent this showing, which should only ever target system code.