Enable OPTIONS handling and content negotiation

- Let OPTIONS calls pass through (to allow for CORS support)
- Marshal the OAuth2 request object from the ZF2 request object, using
  content negotiation for body content. This makes testing easier and
  less prone to error due to elimination of superglobals usage, and also
  ensures that values are shared between the libraries.