Refactor FormatNegotiator according to RFC2616

Fix how Negotiator parses the accept header string
Add tests

See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html