Add a lib for the Hitachi HD44780 controller

Changes:
- Add a bus-agnostic lib for the Hitachi HD44780 character LCD controller
- Add a 4-bit GPIO bus implementation for the HD44780
- Add an I2C bus implementation for the HD44780
- Add a high-level extension to the HD44780 lib with convenience functions
- Add tests for the hd44780 lib