Combine SAML Service Provider classes into one

The AuthnHandler and AssertionConsumer are closely tied together and
require each other to work. AuthnState is used to communicate between
the two, but is not used anywhere else. The original idea for them being
separate was that they may be reused for different SAML roles, but it is
now obvious that there is no possibility of reuse because each SAML role
shares almost nothing with other roles.

Therefore, this change combines AuthnHandler and AssertionConsumer (and
their communication class AuthnState) into a single class so the
interactions between the code are considerably more obvious. This
organization is similar to what was done for SamlIdentityProvider.

These changes may be hard to follow, but they are basically just
concatenating the various classes together.  The only other change is
that DocumentHandler depends on the Service Provider to obtain the
user's AuthnIdentity instead of accessing the session directly, which
removed the only external dependency of AuthnState.
10 files changed