split into multiple files + add support for NewHavenDisplay I2C LCD module

- splitting out into separate files to keep maintainable
- add support for NewHavenDisplay I2C LCD module - using the LCDi2cNHD
library