feat(client): Add support for `preVerifyToken`.

`preVerifyToken` is sent by trusted RPs to indicate that a user is already verified. The Auth Server
then does a dance with the trusted RP to determine whether to create an account for the user without
the need to verify their email address. If the user is pre-verified, the signup flow completes at the
`/signup_complete` screen. If the pre-verification fails, the user is still requried to verify their
email address as is currently done.

This PR also introduces the concept of a "Relier" model. A Relier is a model
that represents an RP and information about/from the RP.

issue #1540

Items that still need to be completed:
* [ ] - Update the fxa-js-client to pass along `preVerifyToken` - See https://github.com/mozilla/fxa-js-client/pull/127
* [ ] - Update the fxa-auth-server to handle `preVerifyToken` - See https://github.com/mozilla/fxa-auth-server/issues/780
The initialization of `service` and `redirectTo` is separated from the initial creation of `signUpOptions`. These fields can be `null` or `undefined`, and it looks nicer to be consistent in how we do the initialization.