Improve the startup handling

When the data ready pin is available, we now wait for it to go high
during startup, as the datasheet dictates. When the pin is not
available, we just resort to polling the SPI port for data instead.
After this, we clear out any startup banner messages, like before.

This changes allows the begin method to be called very shortly after
powering up the gainspan module, even it hasn't printed its startup
banner yet.
Make sure the connection states are cleared on end()
Allow flagging an unrecoverable error

When 20 subsequent 0xff bytes are received, or a command times out, an
unrecoverable error is flagged. When this happens, the module stops
working and the caller is expected to reset or power cycle the board.
Fix indentation