Remove hardcoded table prefix in ShortLinkMySQLDAO, closes #1277
Restore writable but blank config file support in installer
* Allow DAOFactory to override config file contents with an array (used when retrieving the InstallerMySQLDAO while the installer has an empty but writable config file)
* Fix installer repair table templates
* Avoid 'timezone not set' Smarty error when there's no config file
* Set cache_pages = true and debug = false by default in config file
* Add regression tests
* Fix test permissions problems in installer and plugin tests
Closes #1276
Restore Web site URL and suggested Twitter app name in Facebook and Twitter plugin settings pages
Add support for timezone/DST or simple GMT offset to fix date-related test failures, closes #1010
Fix views using old design elements, closes #1279

Bringing install (and install error) pages in line with the 1.0 design CSS.

Signed-off-by: Anil Dash <anil@dashes.com>

closes #1289
Geoencoder plugin: Correct out-of-date instructions for getting a Google Maps API key
closes #1271
ExpandURLs plugin: Add cURL user agent to get Facebook redirects, closes #1282
Expand URLs plugin: Set error when short URL expands to empty string, closes #1280
Geoencoder plugin: Fix typo and add isset checks
Expand URLs plugin: Add Bitly clickthrough rate instructions, closes #1284
Use Google Chart Tools for Visualization

- Replace Google Image Charts with interactive, javascript charts using
  Google Chart Tools

Charts Updated:
- Follower Count
- Group/List Count
- Client Usage
- Recent Activity
- Post Types

- Removes code from FollowerCountMySQLDAO::getHistory used to populate
  missing dates and calculate bounds for the old image charts.

Conflicts:

	tests/TestOfFollowerCountMySQLDAO.php
	tests/TestOfGroupMembershipCountMySQLDAO.php
	tests/TestOfUtils.php
	webapp/_lib/model/class.FollowerCountMySQLDAO.php
	webapp/_lib/model/class.GroupMembershipCountMySQLDAO.php
	webapp/_lib/model/class.Utils.php
	webapp/_lib/view/dashboard.tpl
	webapp/plugins/facebook/view/facebook.followercount.tpl
	webapp/plugins/twitter/view/twitter.followercount.tpl
	webapp/plugins/twitter/view/twitter.listmembershipcount.tpl
Clean up Google charts, merged into 1.0
Complete Google charts port
* Move JSON-generating visualization-related functions from Utils to DashboardController
* Count Replies/Comments, Shares/Retweets, and Likes/Favorites/+1s on Response Rate chart
* Add Clickthrough Rates chart w/ tests
* Move This Week's Most Discerning Followers up on the Dashboard
* Don't use PHP 5.3-only date_timestamp_get function
Closes #1262, closes #1068, closes #1007, closes #1241
Issue #975: Web-based application upgrader
* Upgrade ThinkUp via the web
* Added beta channel option in Application Settings
* Update upgrader screen to comply with 1.0 CSS design and installer design
* Documentation
Replace loading.gif globally with new color-themed animation.

Signed-off-by: Anil Dash <anil@dashes.com>
Version 1.0.4
Fixes #1302 - undefined resultset
Adding info on editing the mysql configuration file.
Wrap the click stats chart in a conditional statement that ensures the code isn't trying to create a chart object from null table data. The fix was provided by @anildash via http://groups.google.com/group/thinkupapp/msg/7fa6d1db5e55e9cb on the Thinkup list.
Merge pull request #1307 from tisjames/patch-2

Dashboard Clickthrough Rates chart needs conditional logic to avoid error due to null table data