Fix broken Accept header parsing and content negotiation

This does not completely fix the accept header parsing but is the least disruptive way to make progress and pave the way towards having proper content negotiation in the future. It has a new Mime::Type.parse method which more strictly adheres to rfc2616 allowing multiple token quoted token types and changes the content_negotiation method to use the Accept header priorities over controller-specific priorities unless the wildcard is used in which case it uses the controller-defined formats.

In a future set of patches the parameter information should be pushed back up the stack into the controller so that its readily available without reparsing the header but thats a much more disruptive patch and I think this is a good place to start.

A few of the tests had to be changed because they were technically incorrect.
It's not, I was following the existing conditional which did require an explicit return. Should I remove them?