Support explicit case-sensitivity in HttpUtility.ParseQueryString (take 2)

Sometimes it would be useful to be able to parse querystrings with an explicit case-sensitivity that might differ from the global setting defined by `StaticConfiguration.CaseSensitive`. An example scenario would be handling an incoming webhook from a third-party service that includes duplicates of keys but with different case (`key=value&Key=someOtherValue`) (I'm looking at you, [Mailgun](http://documentation.mailgun.com/user_manual.html#receiving-messages-via-http-through-a-forward-action)!).

I'm aware this is a pretty specific problem, but since both `HttpUtility.HttpQSCollection` and `HttpUtility.ParseQueryString(string, Encoding, NameValueCollection)` are internal to Nancy it would require a lot of duplicate code to implement it outside Nancy considering that the logic is already there (just hard-coded to use `StaticConfiguration.CaseSensitive`).

Feedback is very welcome!