Add thenClick method

close #41
Hook phantom.onError in the bootstrap script

If an unhandled error occurs, the bootstrap script emits an error event and
exits with a non-zero exit code. Partial progress toward #4.
Also emit trace when crashing in onError
Crash if passed an invalid transport
Use system.stdin instead of /dev/stdin

Remove buffering logic

close #42
Throw on invalid JSON input to http/stdio server

Include offending line in the error message

Close #46
Refactor FilteredStream to be a readable-stream.Transform

Accept npm's format for package.json so --save is less disruptive in the future.
Emit console event payloads as strings, not buffers
Bump version and cut release
Test that stdio-server crashes if passed invalid JSON

Also factor child spawning out as a separate module for tests
Move emit to module and provide console methods

`lib/bootstrap/emit` now provides `emit(<event>, params...)` and
`console.log(what...)` and friends. For now, `console` methods with a level
other than `log` prepend their level to the message. So:

```javascript
var console = require(options.spooky_lib + 'lib/bootstrap/emit').console;

console.log('hey', 'yo'); // -> emit('console', 'hey yo');
console.debug('hey', 'yo'); // -> emit('console', 'debug hey yo');
```

close #45
Inherit Spooky from EventEmitter correctly

Previously, the constructor did not pass new instances through EventEmitter, so
all Spooky instances shared the same EventEmitter instance state. Instead, use
util.inherits and call EventEmitter when constructing Spooky instances.

Thanks to @tomchentw for figuring this one out.

Close #51, #60