Accomodate variable site_root_path in tests
Standardize test mode check

Use a cookie rather than SESSION for web-based test flag
Use single Utils function to check test mode everywhere
Stop using global TESTS_RUNNING variable
Harden tests; Indicate session started in controller constructs

Call control instead of go
Indicate session has started when a controller instantiates another
controller
[DB MIGRATION REQ'D] Add database $_SESSION storage
Creates SessionDAO Interface and MySQL implementation
Creates sessions table
Adds SessionCache::init() to start sessions and set handlers
Modifies controllers to make use of this
Moved date_default_timezone_set($config->getValue('timezone')); before SessionCache::init call.
   The DateTime construct error was happening because in ThinkUpController, SessionCache::init was being called in ``__construct``, before ``initializeApp``` is called in ``go``. The default timezone is set in ``initializeApp``.

Fixes for failing tests from Session Changes
  Handle new tables in installer test
  Fix wrong table count in mysql install dao test.

Adds new config value use_db_sessions which defaults to true
  Add new documentation

Closes #1818, closes #962
Add support for running all tests (including integration tests) on Travis

Move travis before_script to a script in extras.
Add apache and mysql confs to extras.
Modify test harnesses to be travis aware.
  (Make sure and send some output, sleep occasionally)
Switch migration urls to non-redirecting www.
Occasionally output while in Travis mode to prevent travis stopping.
Added a mode to just test install to allow the build matrix to only test
   the install in one build, not all.

Closes #1328, closes #1824