firmware: Small code cleanups
firmware: Find out what bit to send earlier

Instead of at the start of the INT0 ISR (e.g. at the start of a bit
period), we can now find out what bit to send at the end of the previous
bit instead. This was not previously possible since sometimes the
protocol jumped from STALL right into the first bit, without a ready or
ack bit in between, but this changed so we can now move this code.

This makes the INT0 ISR even smaller and more single-purpose, which is
nice. Additionally, it saves 16 bytes of flash space :-)