Add domain list support.

First pass at adding support for a domain selector on the login form.

Adds a new core parameter 'domains' which should be a list of
acceptable domains.  Only the first whitespace-delineated 'word' will
be used, so additional information can be added to the domains (eg
"chat.foo.com (for general users").

When defined, the login logic will strip off any user-provided domain
and append the selected domain to the JID before attempting to log
into the server.

Problems:
        - Doubles the width of all modal dialogue boxes, not just the
        - Candy.View.Pane.showLoginForm() pulls the domain list
          directly via Candy.Core.getOptions() rather than taking
          them as a parameter.  This is probably not 'best practice'.
add comment describing `domains` option.
jshint fixes
requests and suggestions per Michael in PR #303
Partial revert of b18b3e2: fix bare username

When domain selector is active, username should be a bare node name,
and using `Strophe.getNodeFromJid()` in such cases returns `null`.
Add support for custom modal classes

`Candy.View.Pane.Modal.show()` now takes optional 4th arg
`modalClass` which will be attached to the newly revealed modal
box.

Additionally, all modals get standard class `modal-common`.

Adjust CSS to apply common attributes to `#chat-modal.modal-common`
so that specificity doesn't prevent custom modal classes overriding
attributes.

Lastly, make login modals wider only when domain selector enabled.
spaces in fn calls
Add core option `hideDomainList`

Also, re-wrap comment describing core option `domains`.
fix whitespace, again
Merge pull request #303 from strix-technica/feature/domain-selector

Add a domain selector to the login form