Enforce utf8 encoding

- Implements new middleware, `EnforceEncoding`, that encodes all param string values to `UTF-8`
- Implements new method,`enforce_utf8`,  in `Hyperdrive::Utils` 
We should only enforce the encoding that was requested via `Accept-Charset` header: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2

We already parse the main `Accept` header, to suss out the media-type here: https://github.com/styleseek/hyperdrive/blob/master/lib/hyperdrive/middleware/accept.rb

This should already be available in our project for parsing the `Accept-Charset` header: https://github.com/mjackson/rack-accept/blob/master/lib/rack/accept/charset.rb

Use that in this middleware to enforce the correct encoding, which likely will usually be `UTF-8` or `ISO-8859-1`. If it's `*`, then default to `UTF-8`.

This means that you will need a `Hyperdrive::Utils` method capable of matching what's parsed out of the header to the arguments supported by `String#encode`. I would use a `case` statement here so that we can support multiple ways of specifying the charset (likely easier than trying to normalize the input and still coming up short).