CAS-1238 Add authentication policy into ticket granting and validation.

The AuthenticationPolicyFactory interface provides a way to inject stateful
authentication policies into the ticket granting and validation pipeline.
CentralAuthenticationServiceImpl methods have been modified for operations
that involve authentication to produce authentication policies based on
service + registered service data whereby the policy must be satisfied in
order for tickets to be issued and validated.

In order to support credential upgrade scenarios
(e.g. forced authentication), a getSupplementalAuthentications() method
has been added to TicketGrantingTicket to store _all_ authentications that
occur on a ticket during an SSO session, including forced ones. In that way
authentication policies can evaluate against not only the first but all
subsequent authentications to find an authentication event that satisfies
the security policy.