Drop the suffixes from the client callback functions.
These were leftovers from version 2.
Restrict ranges of hw.freq and hw.active_high, and check them before accessing the hardware.
Convert the signal buffer into a packed array, with each item holding up to 8 pulses.
This reduces the size of the buffer with a factor 7.5.

Update the code in readpin to show how to read the signal buffer.
Minor nits to input.c, most notably make the upper limit for a 1 bit exclusive.