Add node.js example for functional testing.

Running something like:
```
hdose -t 1 mocha -t 100000 test.js
```
Should make it.
Expect to pretty print `String`s rather than `a`.

This keeps output cleaner and letś us decide what to output. (With or
without surrounding `""`).
Make a major refactor and add pretty printing.

Things aren't as robust as I'd like, but they're working better now. I'm
using STM to manage hanging processes states accross triggered command
execution threads, as well as the spawned `threadDelay` dojo session
timeout.

There are still a couple of problems, which I think are related to me not
compiling the binary with `ghc -threaded`. Some feedback on it'd be
nice. I tried making things as conside as possible, but eventually
realised that using `do` notation would be a lot cleaner (to write all
STM transaction in point-free-style, I'd have to use a bunch of `liftM`s
or `Applicative`/`Functor` operators). I honestly actually need to study
STM a little more. I'm unsure of the implications of using `atomically`
on several different threads.

Pretty printing with `PrettyPrint` was also added, and should serve most
of this tool's purposes. I don't think I'm going to spend any more time
in it, as long as the proof-of-concept is implemented.
Log process termination after doing it.

This seems like a more sensible interface, since ideally this would
interrupt a process from running. On really fast test suites this is not
very relevant.
Set-up cabal to compile with `-threaded`.

This solves some problems with `System.Process` `waitForProcess`. Some
asynchronism problems still need to be solved.