Initial seperation of how to get the values to be used in unmarshalling.
Initial seperation of how to get the values to be used in unmarshalling.

With the seperation into the ParamValueProvider func, we can give the ability
(and we will) to change how the values used in unmarshalling can be obtained.

Current default information of getting values from the QueryString+Form is
there, but no way to replace it with a custom implementation yet.

I foresee this as a way to allow other parts or modules to pass values,
maybe a module that does better URL parsing to provide values and keys
based of some matching of a url for example.

mattn/sparkle