Content negotiation middleware for Rack-based web applcations