Refactored access token responses and factories.

Refactored access token responses so that exceptions are never thrown
from inside the RequestAccessToken methods and any input is dealt with
properly. Reworked IAccessTokenResponseFactory to provide a simpler
interface without generics (they weren't used anyway).