Add support for reading most common form inputs

* Added new unit tests to cover various input states
* Now using ordered map to guarantee parameter order
* Also supporting passing multiple parameter values
  using the same format as ring's param middleware