trace: hint to RPM that we're async

Needed to get RPM to take advantage of the behavior added for the Java
agent to not roll-up lots of short initial calls in the trace.
deps: upgraded to latest version of CLS.
instrumentation: WIP MongoDB weirdness

The problem is actually in how cls-glue deals with EventEmitters, and is
not helped by the fact that streams do funky things with EE functions at
runtime. Current approach is working (but slow), but need to add support
for MongoDB connections.
tracer: WIP: closing hole opened by events
code: consistency nit
tracer: WIP removed no-longer relevant comments
instrumentation: WIP: rewrite of MongoDB
code: the slice must flow

See comment on Tracer.prototype.slice for rationale. The performance
difference is startlingly large.
test: transactions are tighter with request now

Trying to pull the transaction out of the context inside the body of the
request callback is now reliably failing due to the transaction being
finished and therefore not being returned by the tracer. The solution is
just to snarf the transaction before it's ended.
test: make it fail without crashing
instrumentation: filter self-calls from traces

See the code comments in the commit for details, but to give a single
example, collection.findAndRemove calls colleciton.findAndModify, and
it's highly unlikely developers know or care about that implementation
detail. Figuring out what's going on requires a little trickery with CLS
to keep track of the types of segments created on the current tick,
which is a strong enough filter to tell the difference between nested
and immediate self-calls.

Also symlinked the multiverse MongoDB tests into the specific versioned
tests. They're too comprehensive to leave sitting on their own.
instrumentation: shrink MongoDB instrumentation

Didn't need separate wrappers for find and everything else, just another
conditional. Arguably harder to follow, but DRY.
test: better, DRYer MongoDB functional tests
instrumentation: first-class support for findOne

Before I subsumed it under find because it was too hard to distinguish
between the two, but now that the agent can deal with MongoDB self
calls, go ahead and add separate the two.
instrumentation: more MongoDB

Added support for `distinct` and the index operations; at this point
it's mostly just writing tests to add additional operations (as well as
the desire to avoid cluttering up TTs with operations most devs won't
care about).
docs: added CONTRIBUTING.md.
config: reword top_n docs, change default value

Now matches how the Java agent handles this feature.
test: split MongoDB tests into separate versions

Doing it as a symbolic link to the multiverse tests was DRY, but then it
was using the multiverse's deps, which was at best confusing and at
worst totally incorrect. The tests are actually only completely passing
with the latest version of node-mongodb-native (1.3.19), and the fact
that they were passing with 1.1.7 was a fluke based on what version was
installed in multiverse.
tracer: move EventEmitter binding into CLS

And in the process square it with the simplified CLS 2 API. And got rid
of potential polymorphism, which wasn't really worth the convenience of
having a variadic .add() function.
tracer: moved nr_flatten_leading to custom params