RUBY-841 Automatically detect Resque as a dispatcher

With this change, it should no longer be necessary to explicitly set
NEWRELIC_DISPATCHER=resque in the environment when starting Resque workers
in order to get instrumentation.

The Resque check is more conservative than most in that it attempts to determine
not only that Resque's code is available, but also that we're actually
running in the context of a resque worker. Because of this, it must come
early in the list of candidate dispatchers (since the other dispatcher checks
are more liberal in their criteria and may trigger false positives).
Sinatra is a framework, not a dispatcher

The distinction between frameworks and dispatchers in the agent is somewhat strange,
but dispatcher =~ 'web server', and Sinatra is not that.
Merge pull request #29 from newrelic/RUBY-841

RUBY-841 Automatically detect Resque as a dispatcher, and remove Sinatra as one
RUBY-1003 tweaks based on feedback from pull request
RUBY-1028 gracefully degrade to PRUBY if JSON marshalling fails
RUBY-1028 only test for broken JSON marshalling if the environment is able to use JSON in the first place
RUBY-1031 get rid of old agent-style rubinius GC instrumentation and add tests for new style
RUBY-874 kill all white space
RUBY-1009 If outside a transaction, don't record Errors/transaction_name metric
RUBY-1026 Tests from Konstantin demonstrating Sinatra issues
RUBY-1026 Fixing pass for Sinatra instrumentation

process_route returns a string for typical matches, but a Proc if it's a pass.
RUBY-1026 Comment out assert we can't currently support

The agent doesn't presently do transaction renaming in flight, so we can't handle
pass from within a route body.
RUBY-1026 Fix for handled Sinatra errors
RUBY-1026 Don't raise_errors, just test without