Move spawn logic from bin/phantomjs to lib/

The spawn logic is now re-usable with require('phantomjs').run(args, spawnOptions);
This logic has been taken mostly as-is from bin/phantomjs and moved into the .run function.
.run returns the spawned childprocess object, which can then be used as desired.
In order to replace the behaviour of the phantomjs-server module, without needing an extra spawned process, a PhantomJsServer class has been introduced.  It is created and returned by require('phantomjs').start(callback).  The class offers .stop(callback) and .address() methods to replace those from phantomjs-server.