Introduce FromEnv class to parse many common types

FromEnv is the class of all types which can be deserialized from the
environment. At its most basic it includes String/ByteString/Text and
their lazy variants, but it also includes numeric types and, in the future,
may contain other basic variants as well.

This also includes generalizing how the ParserF functor works to include
variations on what exact parsing function is being selected to do the
parsing. Each different kind of error is collected at the end.

All together we can parse types of class FromEnv, FromJSON, or Read.