The transaction tracer now monitors for errors by default.
WIP: Added error interception for Connect 2 middleware.
Don't break functions that check callback arity.

Given the way that many JavaScript functions reflect on the arguments object
to make themselves variadic, doing quasi-dynamic dispatch on the length of
the declared arguments list is a bad idea for a host of reasons. That said,
Connect, Express and Mocha all do it. The only way to set arity is by
construction a function expression with the appropriate declarations, so it's
unfortunately necessary to add another function call onto the stack to avoid
breaking things.
Broke connect tests out into an explicitly versioned test.

Not exactly an integration test, but close enough, and this way the
dependencies are correct.
Added support & tests for Connect 1.x -- mostly refactoring.
Preserve original functions as __NR_original on wrapped functions.
fs.readdir must work outside transaction.

The order of ErrorService.monitor's parameter is unclear.
Simplified ErrorService.prototype.monitor.

Also did some general refactoring and simplification of the
error-handling code in the affected instrumentation, because it was all
starting to look a little fuzzy (fixed a couple cases of double-wrapping
while I was at it).
Merge branch 'master' into errors
ErrorService.prototype.monitor argument order changed.
Braino broke everything.
Split Express TAP cases out into versioned files.
Don't blow out the module cache with package.json files.
Streamline wrapping, handle more arities.
Fixed names and simplified considerably.
WIP: Versioned Express test refactor, added error-catcher tests.

This is the very rare occasion on which I commit failing tests, because
the scope of the changes is getting pretty huge, and I wanted to get
this refactor in before I started pulling Transaction and other tracer
classes in to get the tests passing.

A byproduct of pushing the Express and Connect tests into the versioned
tests is that the core modulee no longer has dev dependencies on Express
or Connect -- the examples will need updates to their package.json
files, but that can come later.

Also includes some documentation cleanup in shimmer and a new, dangerous
helper method.
Stop renaming requests for / to /ROOT. That's dumb.
During transactions, add exceptions to transaction.

Then figure out how to handle them at the end.
Code qualiy nits.
Fix Connect handler wrapping and make error interception heuristic.

This is probably best considered a work in progress and needs better
tests. Copying the longish comment from wrapUse for context:

Give the error tracer a better chance of intercepting errors by putting
it before the first error handler (a middleware that takes 4 parameters,
in Connect's world). Error handlers tend to be placed towards the end of
the middleware chain and sometimes don't pass errors along. Don't just
put the interceptor at the beginning because we want to allow as many
middleware functions to execute as possible before the interceptor is
run, to increase error coverage.

NOTE: This is heuristic, and works because interceptor propagates errors
      instead of terminating the middleware chain. Ignores routes.