Handle empty message files.

Consume leading spaces and comments before trying to parse fields and
constants. This results in a message type isomorphic to the unit type.

Closes #13
Fix Bool serialization.

ROS specifies that we serialize booleans as a single byte, while there
is an instance of Haskell's 'Storable' class for 'Bool' that uses four
bytes for each boolean value. We handle individual boolean values with
the 'RosBinary' instance for the Haskell 'Bool' type (i.e. one byte for
each boolean). We must handle arrays of booleans specially as the
serialized form must still be one byte per value.

This approach uses Bool on the Haskell side, while serializing to and
from ROS peers using one-byte-per-boolean for top-level boolean fields,
variable-length arrays of boolean values, and fixed-length arrays of
boolean values.

Fixes #15
Updated TODOs and workflow notes.
Merge branch 'dev' of https://github.com/acowley/roshask into dev