Abstract the communications method (Serialport, Bluetooth, etc.) out so this can be used regardless of medium.

This modifies the code base to remove the requirement of just node-serialport communication and allows the code set to be used with bluetooth or any stream interface system for that matter. I have also removed the need for including Q the promises library since newer libraries (when, bluebird, etc) can wrap callback style, this will allow developers/users to decide their preference instead of forcing it down on them.