docs: Remove spaces from filenames

GNU make doesn't handle spaces, so this allows us to add a makefile for
generating the HTML next.
docs: Add Makefile to generate HTML
firmware: When DEBUG is not set, don't define pulse()

Before, pulse() would be defined as a no-op, making the code compile but
not work as expected when adding pulse() debug statements. Now it just
doesn't compile.
firmware-test: Show detailed errors on scan failures
firmware: Wrap the pulse() macro in do { } while(0)

This allows using it as the body of a single-line if without causing
unexpected sideeffects.
Update backpack bus protocol timings a bit more

This:
 - Makes the reset pulse longer, so that the maximum inter-bit time can
   become a bit longer. This gives the master a bit more time to do
   processing in between bytes (or bits).
 - Makes the start delay a bit longer. The previous minimum was too
   short, since the slave would not pull the line low before the master
   would release it again. With a single slave, this wouldn't be a
   problem (since it would know it just pulled the line low), but other
   slaves would now see two falling edges and get confused). Requiring
   the start delay to be a bit longer solves this.
 - Updates the watchdog reset timeout to account for the longer maximum
   inter-bit time.
firmware: Add make write_fuses target
firmware-test: Test typical timings before minimal timings
firmware: Increase debug pulse duration

When using a slow (10kHz) logic analyzer sampling rate, you can
otherwise sometimes miss a pulse.