templates/zebra: put ZwiftClient tenant constructer arg last

It is last so that it's easy to make it optional. It will become
optional when we begin supporting Swift v1 auth for the Zebra
environment.
templates/zebra: refactor auth into a _auth2 method
templates/index: better way to escape inner template

The deploy.* settings are only known at deploy time, but the
index.html template is processed at bundle time.
templates/zebra: allow different args for different auth methods

The differnet authentication methods (v1, v2, no auth) will need
differnet arguments in the future.
templates/zebra: only add auth token when set

This allows a client to use the library without authentication.
templates/zebra: optionally take success callback from opts

This is similar to how jQuery allows you to pass callbacks.
templates/zebra: add support for Swift v1 auth
templates/zebra: document opts keys needed for auth methods
zpm: add auth version to deploy options

This allows you to deploy using both v1 and v2 auth.

We pass the data into the template as an escaped JSON string. This is
important to ensure proper escaping. Strings (password in particular)
can contain tricky characters such as quotes or backslashes and they
need to be escaped correctly.
deploy: add support for deploying without web UI auth

Passing the --no-ui-auth flag to 'zpm deploy' will now generate
JavaScript code that avoids trying to authenticate. This is useful
when it is known that the browser already has acquired the required
session cookies by other means.