Minimise overdriving of display inputs, plus some small fixes.

These changes are my attempts to further minimise the problem of the display's 3.3V inputs being overdriven by the CPU's 5V outputs. The goal is to keep all display inputs low as much as possible.

A beneficial side effect is that the speed of some operations has been improved. For example, the uView.display() function is now about 4 times faster (from 2.9ms down to 0.74ms). The clear() functions are similarly faster.

I've also added a uView.end() function, which powers down the display. This can save power when the display only occasionally needs to be on. uView.begin() will power the display back up.  uView.display() will re-display the screen buffer, which isn't affected by, and can be modified, when display power is off.

I've also fixed a few comments, bugs, and compiler warnings along the way.

All sketches that I've tried with my library seem to work the same, except where timing is dependent on the speed of the library, such as MicroViewCube where the cube spins noticeably faster.
Although I switch back to page mode, we may want to just initialise and stay in horizontal mode. It depends on whether it's intended that users can directly control the display, using command(), data(), setColumnAddress(), setPageAddress().