RUBY-1334: Assert that we have exactly what we expect in connect settings.
RUBY-1334: Parse label types and values from config.
RUBY-1334: Parse semicolon delimited labels string into types and values.
RUBY-1334: Reject type-value pairs with a missing colon.
RUBY-1334: Only malformed pairs are removed from labels.
RUBY-1334: Handle single type-value pairs with missing semicolons.
RUBY-1334: Strip whitespace from labels and return an empty list if malformed.
RUBY-1334: Cleanup tests, test labels from strings are included in settings
RUBY-1334: Add labels to the default source.
RUBY-1334: Use do_not_cast to prevent flattening, test parsing dictionaries.
Allow to change logger formatter.
Merge branch 'dev' into RUBY-1334-labels-and-rollups
RUBY-1334 Multiverse testing for labels

This commit adds multiverse testing for checking the actual transmitted
connect data for labels.

Getting this to work also took a bit of revision on DottedHash because
of inconsistencies in its treatment across the various source types.
YamlSource specifically would include the original keys pointing to
hashes, while other DottedHash subclasses (including those created by
the with_config test helper) did not.

We want those subhashes preserved most of the time across the dotted
flattening, the one exception being when we serialize the settings to
the collector, so we still support a mode of creation that doesn't
preserve the non-dotted keys.
RUBY-1334 Remove unneeded do_not_cast business in helper
RUBY-1334 Stop with testing config level numbers

We basically only ever want testing layers either at the very start
(highest precedence) or at the end (lowest precedence). Changing the
with_config API to match that usage, and also adding a
with_config_low_priority as a clearer helper than leaving a dangling
'false' on the few with_config cases that need the low priority option.
RUBY-1334 Cleanup after ENV setting test
Added Ben's EventLoop class, which will replace WorkerLoop for harvesting in the
background thread.
Added non-public option :transaction_event_report_period for controlling the
frequency of harvesting transaction event data (formerly known as analytics
event data).
Hook up EventLoop, so that the agent no longer uses WorkerLoop for background
thread harvesting.
Add EventLoop unit tests, and get all of the tests passing.