First stab at making things controllable

To make things easier for myself, I just use the web API instead of
having to figure out modbus/tcp.
Handle more protocol corner cases and encoding
Make a proper CLI tool

We can now actually remote control stuff interactively!
Start work on a stateful controller

Step 1 is tracking function status over time. Next up: triggering
functions based on when other functions were triggered.