Support lists in param maps

This is a precursor to some of the work I'm doing in the form support in peridot.

It allows param maps to use a vector to supply multiple values for a single key, which then expands to a form that ring's param middleware will handle.

I wanted to get a quick review rather than just dropping it straight into the upstream branch :)