SerialClient.py:
- Changed 2nd sync byte to a protocol version 0xfe
- Changed message header state machine to check protocol version
- Changed 2nd sync mismatch message to express protocol version mismatch
- Created a "synced" state, initially false. Sync timeout message if
protocol has never synced suggests broken link or version mismatch, whereas
if protocol has synced it uses old timeout-restarting message

node_handle.h:
- Changed 2nd sync byte to a protocol version 0xfe
- Changed message header state machine to check protocol version
- Changed handling of protocol byte mismatch to cause it to send a
timeSyncRequest back to rosserial_python, which triggers rosserial_python
to detect the protocol mismatch & emit an error message. This won't do
anything for hydro-rosserial_python + groovy-rosserial_client, because
groovy rosserial_client doesn't have this logic, but next time we change
the protocol it will kick in & trigger a meaningful error message from
rosserial_python

Fixed committer ID