[Accounts] Allow username to be passed to SAML IDP

Problem statement:

Currently it's possible to pass through a username to the internal Canvas login page with a URL like:

https://example.instructure.com/login/canvas?pseudonym_session%5Bunique_id%5D=username@example.com

If the same parameter is used for the SAML login provider:

https://example.instructure.com/login/saml?pseudonym_session%5Bunique_id%5D=username@example.com

Then there is no in the SAMLRequest parameter that is sent to the IDP. This means it's not possible to build a login routing page which gets the user to enter their username first and then routes them to the correct login page with their username prefilled. This means they end up having the re-enter their username a second time if they are logging in through SAML.

Proposed solution:

Passed the requested login through to the SAMLRequest if it's provided to Canvas.

User role(s):

admin