Use ByteString for binary data in Hydra-Haskell, rather than String
Hydra's binary literal type has been included in the language from the beginning, as it is useful in combination with other frameworks with support for binary data, like Protobuf. However, at the term level, binary literals have never actually been used except in tests. Binary literals in Haskell are just Strings, and there is no well-defined encoding scheme. To get serious about binary data in Haskell, ByteString should be used instead of String. Make this change, updating DSLs, the Haskell coder, and tests accordingly.
Note: the only tricky thing about this change is in the Haskell coder, where we need to represent ByteStrings in some way (e.g. as a list of hex integers like B.pack [0x0F, 0xA0, 0xB1), and probably in hydra.adapt.literals as well (where we need to downgrade binary to string in languages where the former is unsupported.