Abstract driver class

I've created an abstract class called gnublin_driver.  Currently, I'm only moved the error handling items : error_flag, ErrorMessage, getErrorMessage etc.   This will eliminate duplicate code in each class and allow for faster enhancements.  

The onError() method is provided as pure virtual method from the driver class.  Overloading this method provides a simple way to implement custom functionality per driver type that is automatically executed when the setErrorMessage() method is called.