Add the ability to send a basic modbus packet

This still feels a bit ugly, I'll try to fix that up tomorrow.  Right
now, we have construction of a packet based on giving a function code
and the rest of the data (yup, no encapsulation there).  Reading the
response is then taken care of by a second function that will return an
error if it cannot get the full modbus response.

Logging is still not fully there, TODOs are left in the code for those
locations.
Link modbus into output system
Change response parsing