Make the phantomjs binary path and port number configurable:

- binary path allows use of, for example, phantomjs wrapper package
- port allows clustered use, when all processes get the same 'random' port

It's a shame to fuck with the established pattern of callback-last, but it's a quick way to avoid changing the api or sniffing args
Convert the whole shebang to use new dnod:

- Fixes issues with old dnode in node < 0.10
- avoids the 'control page' totally, all comms can happen within the phantomjs script directly.
- removes a lot of the heavier/crazier dependencies (express/socket.io) in favour of slimmer alternatives
Add compiled
fixup: compiled
Expose Webpage.close
Make setContent return status code, and not fire callback until loaded