Re-introduce __attribute__((unused))

Projects that have pin definitions in a single header file will issue warnings if source files don't use all the pin definitions.
oven_controller is an example of such a project.
Simplify interface of HD44780 device. Fix init.
Support null port and null_pin_type.
Add support for lsb-first transmission of bytes (and bytes only).
Add "Arduino-compatible" digital pin functions.

This adds pinMode, digitalWrite, digitalRead, shiftOut and shiftIn
functions with optimal performance.
For convenience, make string_out member function return pointer to
terminator.