Add error handling and emission on no connection to module

You should put this emission in a `setImmediate`:
```.js
setImmediate(function() {
  self.emit('error', err);
});
```
The reason being if someone writes code like this:
```.js
var gprs = require('gprs').use(port);

gprs.on('error', someFunc);
```
You'll want to wait for the function to return a reference to the gprs object (in the first line) and for the event listener to be registered before you actually throw the event. That's what `setImmediate` does for you. 

On a related note, it looks like you still need to return a reference to the gprs object when the function is complete.