Use bang patterns in example data type

Using strict fields is the right default. Among other things, this
removes the risk of creating thunks in the field conversion.
Bump version number to 0.2.2.0
Interleave type conversion and parsing

This drastically reduces memory usage of decode as we now need to hold
on to O(n * sizeof(target_type)) bytes instead of O(n * sizeof(Vector
ByteString)) bytes. The latter is typically much larger, due to the high
constant-factor overhead of Vector and ByteString.
Whitespace only