accept header content negotiation

* look at wildcards */* and main/*
* return a 406 when nothing matches the accept header
Merge pull request #523 from yesodweb/content-negotiation2

accept header content negotiation