RUBY-1176 Initial cut of xray session management

Responds to basic xray metadata format to create and remove sessions
RUBY-1176 XRaySessions responds to AgentCommand

* Handles being passed the list of active xray sessions via an agent command
  instead of a raw hash
* Calls to service for metadata on the newly added sessions
RUBY-1176 ThreadProfiler and XRaySessions belong to router

AgentCommandRouter is becoming more of a manager for the various pieces of the agent
command handling infrastructure. It will now funnel communication between the agent
and the various objects that handle the details of running commands.
RUBY-1176 Minor renaming on methods and params
RUBY-1176 Set Xray session values from metadata
RUBY-1176 Removing thread_profiler accessor on agent

This is owned by the agent command router, and shouldn't have been left shimmed in through the agent.
Was actually only accessed via the multiverse tests.
Merge branch 'dev' into RUBY-1176-xray-commands
RUBY-1176 Fix test problem with unstub

To get test to properly replace a method that we stub by default in setup, we were trying to
unstub. This doesn't seem to work right on the version of mocha encountered on the rails23
env locally. Now we just replace out the objects we're testing with a clean slate instead.
RUBY-1186 Set a timeout for initiation of connections to the collector
RUBY-1176 Renaming and tidying for X-Rays
RUBY-1193 Fix for partial lookup problem

We were previously patching into ActiveView::PartialRenderer#render and doing part of the
work the view does to find our name for the related scope push. Unfortunately, if a partial
is rendered with the format embedded in the string (deprecated but still allowed), then
the call to setup we were making actually mutates data and results in a different partial
path the second time (which probably fails to render).

This commit changes the tactic to instead override the instrument method that's being called
once the identifier for the partial has already been found. The data we need is in the
payload to just look up.
RUBY-1193 Comment fix and variable renaming
RUBY-1176 Remove random transaction sampling

An experimental mode for randomly gathering on occasional additional TT was
added a long time ago. This feature is unused based on the production
environment data and config defaults. To pave the way for tidying up the
transaction sampling for X-ray sessions, we're simply removing it.
RUBY-1186 Improve test coverage for HTTP connection initiation timeout
RUBY-1176 Extract developer mode tracing

Developer mode holds onto a much larger collection (100 by default) of TT
samples than we do for production. Extracting that logic to its own class.
RUBY-1176 Extract slowest sample tracing
RUBY-1176 Extract force persist trace sampling
Merge pull request #162 from newrelic/RUBY-1176-xray-commands

RUBY-1176 X-Rays Session Management
RUBY-1176 Add start_time, stop_time to WorkerLoop, refactor WorkerLoop scheduling.
RUBY-1176 Use WorkerLoop start/stop_time from ThreadProfile