sub-millisecond period is really meaningless in this case
comment the types
fix mac matching in configureHook()

The mac-to-string conversion was formatting it in an unexpected
way (using - as separators, and without normalizing each byte as
two-character-wide-padded-with-zeros). Moreover, properly match
regardless of whether the property is using uppercase or lowercase
letters.
add the error message from the sch_remote SDK into the tasks's error messages
throw when findDeviceIP cannot find anything
properly throw in the cleanup catch-all in configureHook

configureHook as a catch-all in which we make sure that we
close the device handle. This catch-all was not throwing, which
was making configureHook report success.
clean the digital I/O mappings in cleanupHook
do not iterate over unused unused UARTs in cleanupHook

This was making the component crash on cleanup since we were accessing
uninitialized port objects
use per-pin reading instead of reading all the pins at once

The sr_pins_get function returns an error with "Unexpected command"
for a reason that is unknown to me.
fix dynamic port declarations
add support for analog inputs
output I/O statistics for the UARTs