errors: coerce stack to string before splitting

You really can't be too careful. Thanks @nrn!
code: removed obsolete & unused class
tracer: reconcile regular & debug tracers

Also, the agent isn't using state.domain anywhere, so remove it.
dominion: pass in only what you need
code: hidden class optimization
connection: send correct last harvest time

It's hazardous to have the details of the collector protocol spread out
all over the place, so instead of doing the one-character fix for the
issue described in newrelic/node-newrelic#41 and calling it a day, I
consolidated all that logic in CollectorConnection, added stricter input
validation to the collector API methods, and added a bunch of extra
tests to validate the new behavior.

Also continued the process of breaking big tests down into smaller ones
and giving individual specs more readable descriptions.
code: hidden class optimization

Don't use 'delete', assign null instead.
tracer: ensure async APIs are always async
tracer: removed FIXME, tidied docs
docs: updated for new version
Released 0.10.3