Refactor token classes to reduce duplication, improve API compliance

This implements the latest tweaks to the token derivation/encrytion
scheme, and uses the new level of symmetry between operations to support
a substantial refactor and cleanup.
Make SrpToken more like all the other token classes.
Make Bundle module export a single constructor.

This makes it more consistent with how other modules do things, even
though we don't create any Bundle objects.
Simplify mocking of Date.now in forgot_password_token tests.
Make SrpToken.prototype.tokenTypeID more consistent with other tokens
Use a single srpServer instance per SrpToken.

This also saves a bit of work at construction time, by deferring
calculation of the B value until it is actually needed.
Treat Bundle like a top-level module, rather than using "Token.Bundle.*"