Update the collector protocol to use JSON and Ruby primitives
The communication between the agent and the NewRelic will not longer be marshaled Ruby objects, but rather JSON in the case of Ruby 1.9 and marshaled Ruby primitives in the case of 1.8. This results in greater harvest efficiency as well as feature parity with other New Relic agents.
Fix incorrect application of conditions in sinatra instrumentation
The agent's sinatra instrumentation was causing sinatra's condidtions to be incorrectly applied in some obscure cases. The bug was triggered when a condition was present on a lower priority route that would match the current request, except for the presence of a higher priority route.