This allows fonts to be hot-swapped out by calling `set_font`
Unfortunately the way fonts are currently stored limits the maximum height to 8 pixels, since that's the size of a uint8_t and the y dimension is bitwise encoded.
The width can be arbitrary, by specifying the widths and max_width (the multiplier for number of bytes per char).
Might be worth grabbing some more bits from 32blit to make this not terrible, but now a user-defined font is an .hpp and a `set_font` away.
* Switch to using AutoRepeat class to debounce buttons
* Read TOF sensor non-blocking to avoid stalling input
* Drop dead code
* Make mode_to_text const
* "Hold" text shows red when held
* typedef pen and constexpr create_pen for #6
* Prevent out of bounds clip permitting write outside buffer
* camelcase rect, point, and pen types
* added triangle(p1, p2, p3) and polygon(std::vector<Point> points) methods to graphics library
* change all uses of pen that were uint16_t into Pen type
* updated micropython modules to use new rect, point, pen naming
* added line(p1, p2) method to pico graphics library with faster vertical/horizontal special cases
Co-authored-by: Jonathan Williamson <jon@pimoroni.com>