The goal is to make it more convenient to reuse the parseField method by
avoiding superfluous constraints on the default implementation.
With readField, the Read constraint on parseField is not required by the
default implementation any more. I found myself needing to make dummy Read
instances in order to reuse the default implementation.
The Typeable constraint is only used to derive the metavar within parseField.
So I extracted metavar out as another type class method. A nice side effect
of this is that now it's possible to customize the metavar and still reuse the
default parseFields implementation.