[WIP] added support for a API versioning

This PR will eventually fix #12 and #30

For now we will only support media type based versioning (aka no URL based versioning)
See also the following links for details:
http://www.informit.com/articles/article.aspx?p=1566460
http://barelyenough.org/blog/2008/05/versioning-rest-web-services/

basically it looks like the best approach will be to replace the default ``RouterListener`` by simply registering a request listener that loads before the default one. In this listener we will need to examine the accept headers to determine the format and based on this decide which controller to use.

Now the tricky bit is that essentially for a single pattern, we will need to have a list of potential controllers we should examine. I have not yet found a good way to do this. Atm I would be inclined to say the best solution would be to support multiple resources per route:
https://github.com/symfony/symfony/pull/2145

There are also some things still missing (on all inclusive list):
- handling of ``foo/*`` priorities (actually consider using the algorithm described here http://httpd.apache.org/docs/2.2/content-negotiation.html)
- YAML/XML support for priorities
- handling of multiple controllers with the same pattern (see above)

Also note that through out all of this we must be aware that some browsers seem to prefer XHTML or worse XML over HTML:
http://www.gethifi.com/blog/browser-rest-http-accept-headers