[Code Cleanup]
* [Workspaces/Dashboards] Dashboards can now be configured to display widgets in one, two, three, or four columns.  Extra columns are added to the right without rearranging existing widgets.  When removing columns from a dashboard, widgets are automatically and evenly redistributed, and can be dragged into a desired order from there.  By using one or two columns, more space is available for detailed charts.  Four column dashboards can display many compact widgets on a single page without scrolling, and make better use of larger displays.
* [Workspaces/Dashboards/Performance] The content on dashboard widgets is now cached for 60 seconds, which can dramatically improve performance with many concurrent workers.  Manually clicking the reload button on a widget will update it with the latest data.  When a dashboard is first displayed, any cached content is displayed immediately when the tab first draws.  Any widgets with an expired cache are then displayed with a "spinner" image and fetched in sequence through an Ajax pipeline.  This process is much more responsive than the previous behavior of waiting until all the widgets have loaded before displaying anything (and leaving workers staring at a mostly blank screen wondering if something is broken).  It's also more memory efficient.
[Code Cleanup] Moved a CSS block to the main stylesheet.
* [Workspaces/Dashboards/Usability] When a workspace dashboard tab is blank, a helper message is now displayed with instructions on how to modify the number of columns and add new widgets.
* [Workspaces/Usability] When a new tab is added to a workspace it is now automatically selected. Previously the new tab was highlighted but it still had to be clicked, which was only helpful in a situation where a worker intended to add several tabs at once before modifying any of them.  This made the most common use case slightly more difficult.
* [CHD-3065] [Workspaces/Worklists/Usability] Worklists are now loaded in order on workspace tabs using an efficient Ajax queue.  Previously this process attempted to only load worklists that were visible in the scrolled browser window, but this is no longer necessary with the workspace improvements in 6.x.  The loading worklists have a more modern style and an animated "spinner" image.
Merge branch '6.6.4' into 6.7
* [Workspaces/Dashboards/Widgets/Performance] The caching on dashboards can now be configured per-widget.  By setting a higher cache TTL (time-to-live) on infrequently used or changed data, page generation performance is improved.  The default cache lifetime is set to 60 seconds on every widget during the migration. Refreshing a widget manually automatically uses the latest data and updates the cache.
6.7-dev checkpoint
Merged '6.6.4' into '6.7'
* [CHD-3172] [Virtual Attendants/Mail] The 'initial message' and 'latest message' placeholders are now available in all message-based Virtual Attendant behaviors.
* [Virtual Attendants/Simulator/Usability] The Virtual Attendant simulator now only makes conditions editable if they are used by the behavior being tested. For instance, an auto-reply behavior that uses the conditions 'message is new' and 'message is outgoing' will now only show those two values in the simulator, which drastically improves usability. Previously, the values of every possible condition were shown (potentially hundreds) even though most of them weren't useful for testing the current behavior.
6.7-dev checkpoint
Merge branch '6.6.4' into 6.7
Merge branch '6.6.4' into 6.7
Merge branch '6.6.4' into 6.7
Merge branch '6.6.4' into 6.7
* [Platform/Dependencies/Twig] Updated the Twig template engine from 1.8.2 (2012-05-29) to 1.15.1 (2014-02-13).
[Code Cleanup]