- Broke the code out into its own file.
- Added chaining and flipped translators to assist with re-using
existing translators. Also simplified logic when translating between
HomeKit & Z2M values by removing special cases like the "binary"
exposes. Since everything can be expressed with translators &
translator chains now, the process is streamlined.
- Wired up the defaultTranslator during the setup phase, so when mapping
is called, there's no nil checks necessary; just a direct call to the
mapping.Translator.
- Also added more documentation for the translation part since I forgot
most of it after a year.