fixes "NoneType can't be called" bug, but...

discovers a new one. The Hephaestus thread only tries hephaestus()
once. (?!?) if it fails, it begins trying hermes() like the Hermes
thread.
limit to 1 traceback

notice the switch from 1 hermes, 1 hephaestus, to 2 hermes
name changes

and others
implement steering wheel lights/buttons packets

seamlessly handles the fact that field order & # of fields is different
between the two
handle trip and trip_pt packets

trips are int32 codes & uint32 locations, while trip_pt are float
pairs, so they're inserted into two different (but clearly coupled)
tables.

Maybe we'll have an analytics thread stitch trip events together, later
on.
add sql table & pattern match for mppt handler

steering wheel & mppt rows have same type, could be combined into one
table...
Also mppt_rx apparently isn't implemented, so we pretend it's identical
to mppt_tx
add dc placeholder and remove old, unused code
comments

consumer.py is nearing completion. it may need a few try/catches for
reliability