Include ActiveRecord tests on 2.1 and 2.2

Prep for covering everything we do in unit tests via multiverse instead
Wire up tests to mysql instead of SQLite

Takes a bit of doing to accomplish this (mostly) withou Rails, but gets
us to where we could move over the unit tests pretty cleanly on all
tehse versions
Move unit test reliance on databases to multiverse
Don't need sqlite3 anymore in these tests
Bad idea putting models in place that Rake migrations load
JRuby + ActiveRecord 2.2 fussing
Setting ENV["VERBOSE"] = "false" isn't verbose
Use rake migrations programatically
Prevent thread restarts in our transaction helper

Noticed this while changing around some error tests.

Ran afoul of log checking in synthetics test, but chose just to remove.
Was on the fence about that check in the first place.
RUBY-1285 Factor in seen? check more consistently

Although I'm not sure we want tag_as_seen as a truly public interface,
it was awkward that it was only being applied partially, and as part of
the metric counting, in the error collector.

This revises that check to happen at the higher level where we choose to
skip, and cleans up some of how we do the thread local access and
tagging.

Note that under normal circumstances, the queue itself prevented us from
getting duplicate traces recorded, so it's only in the odd case of
someone calling tag_as_seen directly that it would be revealed that we
weren't abiding by it.
Better error messages if failure during before_suite
JRuby support changes for ActiveRecord tests
RUBY-1401 Not ready for aggressive_keepalive=true by default yet
Merge pull request #905 from ruby-agent/no-aggressive-keepalive

RUBY-1401 Not ready for aggressive_keepalive=true by default yet
tyop
Merge pull request #906 from ruby-agent/tyop

Tyop
Merge remote-tracking branch 'origin/release' into dev
RUBY-1401 Refactor NewRelicServiceTest

The tests for the NewRelicService class have some very aggressive stubbing and
mocking infrastructure in order to simulate HTTP connections and responses.

Previously, they were split into two classes: NewRelicServiceKeepAliveTest and
NewRelicServiceTest. These two classes used slightly different mechanisms for
simulating connections and responses, making the tests even harder to follow.

I've combined both sets of tests into a single class with this commit, and made
some other improvements:

* Added a way to have the HTTPHandle class raise an exception on a request
  instead of returning a response.
* The HTTPHandle class will now record start / finish / request calls that are
  made to it, in order to make it easier to write tests asserting things about
  the sequences of these calls.
* I've added several new test cases to demonstrate bugs that we found in testing
  RUBY-1401.
RUBY-1401 Better connection failure behavior for NewRelicService

When a connection-related failure (timeout, SocketError, etc) occurs, the
NewRelicService class will now retry the request once, after closing the now-bad
connection and establishing (and caching, if appropriate) a new HTTP connection.

This improves the behavior specifically when the remote peer closes the TCP
connection in between harvest cycles, leading to a failure on the very first
request in the next harvest batch.
RUBY-1401 Better simulation of closing the connection between harvests