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
Stop testing on PHP 5.2

This is the beginning of our PHP 5.2 support deprecation.
See also #1830
https://github.com/ginatrapani/ThinkUp/issues/1830
[DB MIGRATION REQ'D] Keep users logged in via long-term cookie

Adds tu_cookies table.
CookieDAO and MySQL Implementation.
Test for DAO.
Check for cookie when not isLoggedIn() in Session.
Kill cookie on logout.
Integration tests for login, and new one for logout.
Updates installer and DAOFactory tests.

Closes #388, closes #1832
Facebook plugin: Swap in short-term token for long-lived token
Test fixes
Send Facebook reauth email to owner, not admin
Facebook plugin: Gracefully handle app-level API rate limiting
Facebook plugin: Gracefully handle "unexpected error please try again" from API
Docs: Add missing header [ci skip]
Facebook plugin: Handle business accounts

In the past, Facebook allowed business owners to sign up for an account with
no wall, profile, etc, that was just for managing pages and ads.

They no longer do so.  The /me api for these accounts does not return
a name field, which is sad, because we use that as the key in the instances
table.

For reference, I found these stack overflow on this topic and the suggestions
all come down to "check for a name field":
http://stackoverflow.com/questions/14719211/how-can-i-know-if-a-facebook-account-is-personal-account-or-a-company-type-accou
http://stackoverflow.com/questions/10857138/how-to-obtain-username-name-for-a-company-facebook-account

This simply checks for a name parameter and then shows the user an error.
Maybe apt-get update.
Merge pull request #1855 from cdmoyer/fix-travis

Maybe apt-get update.
Docs: Update core dev team page
Instagram Plugin
With contributions from @AaronKalair and @ginatrapani
Improvements to Instagram Plugin
Only get newests posts and only get friends every two days.
Allow non-duplicate key errors to bubble out of CookieMysqlDAO

This'll help people better troubleshoot a missing migration, for example.