Prevent loading setup screen if already setup

Closes #3145
* Prevent navigation to the setup screen if Ghost setup
  has previously been completed.
* Fix templates that were incorrectly using foreach instead of each.
* Add validation for minimum password length.
* Fix up functional tests and split out tests for setup to a separate
  instance of casper because setup requires a new database.