Rework semantics of Params.

ParamOpt will now fail if the parameter is present in the request but
can not be converted to the target type. Previously we succeeded using the
default value in this case.
Open question is how to cache in ParamOpt?

Parameter now only uses the default if the parameter is not found, not
when the conversion function fails.

The (wrong) Maybe instance of Readable is removed.