Add middleware to handle JSON requests

In order for sinatra to handle JSON requests properly by adding the body
to the params, we must use some middleware to parse JSON type requests.
This middleware is taken from the rack-contrib gem and should be
replaced by the gem in the future. Currently the latest stable release
does not contain this code and this is taken directly from master.