docs/EEPROM: Fix SPI speed layout

The layout figure accidentally had 5 bits for the significand.
firmware: Enable pullups on unused pins

This saves some power, since the input logic won't be switching because
of the floating pins all the time.
firmware: Restructure overflow logic

The net effect should still be the same, but this change prepares for
the next commit.
firmware: Return to idle state if the bus is idle for a while
firmware: Add make eeprom_id target

This allows setting an eeprom id. Values can be set on the commandline,
or will be taken from /dev/urandom when left out. Checksum is calculated
automatically.
firmware-test: Remember the scan results

This allows actually using the scan results, but also allows us to print
the results after the scan. Doing it during the scan caused too long
delays, so that the transaction would end and only one slave would be
enumerated.
firmware-test: Don't fail scan if no slaves are present
firmware-test: Only access EEPROM of enumerated slaves
firmware: Split handling of STATE_READ_EEPROM_SEND_DATA and STATE_ENUMERATE

They both needed to do a similar thing: send data from EEPROM. However,
with the upcoming error handling changes, things will start to deviate
more, so it's better to separate them now. This commit should not change
any behaviour at all (since FLAG_MUTE can never be set outside of
STATE_ENUMERATE).
firmware: Implement sending error codes

This commit updates to the recent changes made to the protocol spec:
 - Changes the behaviour after a NACK to always send an error code, ack
   it and then drop off the bus
 - Returns an error when an invalid EEPROM address was given
 - Returns an error when reading or writing ends up beyond the end of
   the EEPROM (implemented in slightly different way than specified,
   spec will be updated)
 - Skips the EEPROM write when the value would remain unchanged
 - Return an error when a read-only byte would be changed
 - Update the test sketch to test for all of the above

References #5