Changed private variables in the MicroViewWidget base class to protected, for direct use by child classes

I've done most of my programming in C and am not so familiar with C++, so I don't know for sure if this is a good idea. I found the widget code to be cleaner having the **MicroViewWidget** base class variables made *protected* instead of *private*, then accessing them directly in the widget child classes, instead of using **MicroViewWidget** methods to access them.

This pull request is based on pull request #20 (replaced **sprintf** calls), so those changes will be included if this request is merged.

Other changes in this request:
- Used constructor initialisation lists to replace variable initialisation code in widgets.
- Refactored widget code to eliminate the **needFirstDraw** variable and associated the *if/else* code.