Force the instrument to a known initial state on connect using the new 32D register.
Always send the I've started message even if the display doesn't understand it -- it will be ignored in this case which is harmless.

This way we're future-proofing ourselves in case this is ever required.
Rework LCD display message code to avoid lots of repeated functions.  Now, there is only one display routine that handles all firelds and a table that defines the fields.
Add functions to get the formatted date and time individually.
Add the time annunciators individually (sans the per indicator).
Get the date and time functions the right way around.
Bring the field name canonicalisation function out into its own utility function.
Add two new CSV functions:

* getRecordCSV
* cleanCSV

and unit tests for them.
Get ride of a pile of unused local declarations.
Comment the unfiltered weight that is available on the K422.
Move the canonical name unit test into its own file.
Fix an off by one error when a string beginning with a decimal is right justified.
Fix the comments for the LCD string display routines.
Indentation improvements.
Fix LDoc complaints.
Extend the time parameter to the varous write to display calls so that in addition to a numeric time value, it can also take a table argument with fields or a string argument that is parsed into tabular form.

The fields that are available are:

time is the old time argument -- the number of seconds between fragments of a message.  It is also used at the end of the message for the wait and clear options.

once displays the message once.

wait displays the message once and pauses execution until it has been completely displayed.

clear displays the message once and clears the display afterwards.

Natually these options can be mixed and matched in any combination.
Move the delay call from the K400 library to the main application.  It is a propery of the application's event loop, not an individual device.

Provide a more beneficial deprecated warning for this call.
Use the delayUntil call instead of having loops servicing the system.handleEvents.

All the calls to handleEvents are isolated in rinApp now.
Space removal from diagnostic messages.
Merge branch 'master' of https://github.com/rinstrum/LUA-LIB

# By Pauli
# Via Pauli
* 'master' of https://github.com/rinstrum/LUA-LIB:
  Space removal from diagnostic messages.
  Use the delayUntil call instead of having loops servicing the system.handleEvents.
  Move the delay call from the K400 library to the main application.  It is a propery of the application's event loop, not an individual device.
  Extend the time parameter to the varous write to display calls so that in addition to a numeric time value, it can also take a table argument with fields or a string argument that is parsed into tabular form.
  Fix LDoc complaints.
  Indentation improvements.
  Fix the comments for the LCD string display routines.
  Fix an off by one error when a string beginning with a decimal is right justified.
  Move the canonical name unit test into its own file.
  Comment the unfiltered weight that is available on the K422.
  Get ride of a pile of unused local declarations.
  Add two new CSV functions:
  Bring the field name canonicalisation function out into its own utility function.
  Get the date and time functions the right way around.
  Add the time annunciators individually (sans the per indicator).
  Add functions to get the formatted date and time individually.
  Rework LCD display message code to avoid lots of repeated functions.  Now, there is only one display routine that handles all firelds and a table that defines the fields.
  Always send the I've started message even if the display doesn't understand it -- it will be ignored in this case which is harmless.
  Force the instrument to a known initial state on connect using the new 32D register.