test: fix bad cwd assumption from tests

The tests assumed that `process.cwd() == __dirname` when scanning
for files but did not actually enforce that.  The result was that
`cd test && node test-sigusr2.js` worked but `node test/test-sigusr2.js`
did not.  This commit fixes that by always chdir'ing into test/ first.
src: move code around

This is prep work for #37, #41 and particularly #42.  There are no real
functional changes in this commit, just a reordering of source code to
make upcoming changes easier.
src: pass .snapshot filename to callback

Fixes #42.
src: add nofork option

Add an option to prevent node-heapdump from forking on UNIX platforms.
Forking is incompatible with node.js v0.12 and it breaks the comparison
view in Chrome DevTools.  An upcoming commit makes nofork the default
behavior.

Refs #37 and #41.
src: update v0.10/v0.12 compatibility shim

Update the compatibility shim to the latest version from
https://github.com/strongloop/strong-agent

Fixes a segmentation fault with V8 3.29.  It's no longer safe to call
v8::V8::IsDead() from an atexit destructor.
lib,src: make nofork the default behavior

Fork-before-snapshotting is fundamentally incompatible with newer V8
releases.  V8 uses threads now but those don't survive the call to
fork().  Then, when creating the snapshot, V8 tries to sync up with
a thread that no longer exists and deadlocks.

Another issue is that forking breaks the comparison view in DevTools
because the heap object IDs don't match up.  V8 updates them after
creating the snapshot but those changes don't make it back to the
parent process.

Fixes #37 and #41.
src: rename kNo{Fork,Signal}Flag flags

Rename kNoForkFlag and kNoSignalFlag to kForkFlag and kSignalFlag
respectively in order to cut down on the number of double negations.
npm: publish v0.3.0

There are enough substantial changes in this release to warrant a bump
of the minor version.