Refactored auth code responses and factories.

Refactored authorization code responses so that exceptions are never
thrown from RequestAuthorizationCode. Refactored authorization code
response factories so that generics aren't used and are therefore easier
to use.