Abstracted Display - fix for issue 13

Display is now an abstract base class, so that we can have different implementations.

The public 'lcd' member has been made private and 2 methods added to the Display interface - getLine and and printAt so that external code doesn't need to access the lcd driver directly.

This will make it possible to also use the OLED display by a simple compile time config change. 

I also needed it now, since I'm not using a display with my arduino and it hangs with the LcdDisplay implementation (waiting for response from the display.)