- moved hardware specific calls to _hw_* functions.
- flipped the meaning of ROW and COL enum for less or more confusion.
- use uint_fast16_t instead of unsigned int.
- throw preprocessor error if display geometry exceeds UINT_FAST16_MAX