Allow sidekiq workers to set their trace params
Add Capistrano 3 support for deployment notification task
RUBY-1292 Improve performance of Transaction.nested_transaction_name

Using String#start_with? instead of a regex here yields a 3% drop in the number
of objects allocated per middleware, as well as ~3% time savings on the
per-middleware overhead.
Merge pull request #509 from ruby-agent/subtransaction-prefix-perf

RUBY-1292 Improve performance of Transaction.nested_transaction_name
RUBY-1292 Remove unused truncate! method from MetricSpec

This method was never actually called, and truncation happens on initialization
of a MetricSpec anyway.

No occurences of truncate! in rpm_site or in dependent_on_newrelic_rpm either.
RUBY-1292 Make the name attribute of a MetricSpec immutable

I would do the same with scope, except that we actually do need the ability to
change scope after initialization (when we resolve scopes at the end of
a transaction).
RUBY-1292 Remove InvalidScopeSettingError and custom scope setter on MetricSpec

We added this error in an effort to try to catch cases of RUBY-1159 in the wild,
but it turns out that the scope on a MetricSpec never becomes nil/false as
a result of us explicitly setting it to be such, so in practice this never
triggers, and it slows down metric recording slightly.
RUBY-1292 Simplify MetricSpec#eql? and MetricSpec#hash

These methods are very hot during our perf tests, and they were making a few
unecessary method calls (to #to_s and #nil?). Removing these calls speeds them
up slightly.
Use a String for SCOPE_PLACEHOLDER rather than a Symbol

This Symbol was being converted to a string anyway by MetricSpec#initialize, and
that conversion was allocating a new string every time.
RUBY-1292 Reduce object allocations in QueueTime#parse_frontend_timestamp
Reduce object allocations in TransactionNamer

We used to create TransactionNamer objects at the start of each transaction, use
them to name the transaction, and then throw them away immediately. This change
eliminated that behavior by changing all of the methods on TransactionNamer to
class methods.

I've also frozen some string constants used by the TransactionNamer to avoid
allocating when referencing them.
RUBY-1292 Avoid extra empty hash alloc in create_transaction_options
RUBY-1292 Eliminate uneccesary allocations in metrics_for_current_transaction
RUBY-1292 Don't alloc strings for trace_execution_scoped header/footer tags
RUBY-1292 Eliminate allocations in TransactionSampler#notice_push_frame
RUBY-1292 Use frozen string constant in Segment#initialize
RUBY-1292 Eliminate unnecessary allocs in Transaction.transaction_type_is_web?
RUBY-1292 Reduce allocations in Transaction.stop by using static empty array
RUBY-1292 Avoid extra allocs for ignore_(enduser|apdex)? and do_not_trace?
RUBY-1292 Avoid allocing static hash every nested txn in Transaction.start