Fix up unit tests. Check config url with isURL.

Covers the following:

* a little more rigorous checking of the site url in config.js using `validator.isURL`.

* ensure that the `done` handler is being called on async tests in a few places it potentially wasn't.

* refactor some tests in `bootstrap_spec.js` so that the async flow is correct.  Previously there were some tests where `done` was being invoked before the promise chain was finished executing, and some assertions were being swallowed up.