Untangled AuthorizationEndpoint and changed UserApprovalHandler to use two methods for the two different situations during which it is called
Fleshed out AuthorizationRequest as an extensible concrete class