more constants
split up networking code by protocol
more splitting
pass packet lengths along
sleep mode is broken for some reason, use _delay_ms as workaround
ack packets after all processing, auto-manage slave select line

makes code much simpler (we can just return from everywhere) and easier to
read (we don't need to toggle it manually all the time)