Move the LCD display mode function into K400LCD.
Allow a key handler to replace itself correcly.  Not sure why anyone would want to do this, but it is now supported.
First pass at supporting different display devices.

Infrastructure support for determining device settings easily.

LCD display modes updated to support difference deivces and cover the full suite.

Register registration slightly modified and updated for different devices.

Extra status values added and made device dependent.

Streaming made more robust.
Push a lot of the status locals into the name mapping tables.
Remove a lot of local constant definitions in favour of placing the values directly in the mapping tables.
Delocalisation.
Indenting OCD
Remove redundant table LDoc.
Produce an error message if the specified device type and the actual device type differ.
Rework the annunicator code so that the caller doesn't need to call different functions for top and bottom annunicators.  The code now knows this and does the right thing.
Some delocalisation of the LCD segment constants.
Fixes to LDoc.
Memoise the K400 string length function.
Respace.
Add checking to callback arguments to ensure they are either a callable object (function or have a specific metatable function) or are nil.
Add usage for the callable and checkCallback functions.  There is no need for these to be tagged as local.
Harden up the back end of callbacks by not attempting to call a non-callable callback -- we generally already tested for a nil callback so this isn't much more.

This means that the calls we have to install callbacks check that they are passed a function or a callable table or nil and that every attempt to call a callback will only operate if it is trying to call a function or callable table.
Reindent
Improve the ldoc comments
Increase test timing slightly.
Rework the padDots LCD helper function to use LPEG instead of ad-hoc subistutions.

Add unit test for some of the LCD helper functions.
Convert strLenR400 to use lpeg patterns instead of ad-hoc per character conversions.  Change this function to not be a memo function anymore.