* [CHD-2889] [Storage/Archive] Fixed a bug in the storage system that occurred when migrating message content larger than 1MB. (Thanks to Bill Arlofski of Reverse Polarity for discovering and reporting this)
[Virtual Attendant/Simulator] The example variable names given by the simulator for list variables will now always include underscores rather than spaces.
[Virtual Attendants/Watchers] Lazy-loading for the 'watcher count' VA condition on ticket behavior.
[Platform/Plugins] Implemented a convenience method Extension_DevblocksContext::getByAlias() where contexts can be loaded by alias (e.g. 'ticket' == 'cerberusweb.contexts.ticket').  This is useful for user-facing functionality, such as snippets, where you may want to lazy-load an object.
* [Virtual Attendants/Watchers] Added a 'watcher count' condition to all Virtual Attendant behaviors.  This can also check if linked records have watchers -- for example, a ticket-based event can check for watchers on the ticket, ticket's org, sender, or sender's org.  This uses the efficient new lazy-loader, so if watchers aren't required for a particular behavior then they aren't retrieved from the database.
* [Performance/Notifications] Fixed an issue where the notification count cache was cleared every time a notification list was displayed on a record; even if the list was blank and nothing was marked read.
* [CHD-2852] [Mail/Worklists] Added a '# messages' column to ticket worklists which contains the number of messages in the conversation.  This can be used in filters and Virtual Attendant conditions. 
* [Virtual Attendants] Added a new 'Application' owner for Virtual Attendant behavior.  This allows administrators to set up global behavior that doesn't trickle down to workers like role-based ownership does.
* [Profiles/Workers] Worker profiles now show the list of properties and custom fields at the top of the page.
* [Profiles/Workers] Comments can now be added to worker profiles.  This provides a way to ask someone a question, or give them an assignment, without relating the message to a specific record.
* [Profiles/Groups/Comments] Comments can now be added to group profiles.  This provides a quick way to direct the attention of an entire group to something, or to ask a question that any member could answer.
* [Profiles/Groups/Usability] Group profiles have been given a much needed makeover.  The properties and custom fields are displayed at the top of the profile.  Group managers can edit basic information directly from the profile.  There are several aesthetic improvements.
* [Profiles/Groups/Virtual Attendants] Group-owned Virtual Attendant behavior can now be run and scheduled from the group profile page.
* [Profiles/Group/Notifications] Notifications can now point to group profiles.
* [Profiles/Groups/Scheduled Behavior] Group profiles now have a Scheduled Behavior tab that is visible to group managers.  This shows all the behavior scheduled on various objects by the group.  There is also a summary at the top of the profile of any behavior scheduled on the group itself. 
* [Profiles/Groups/Virtual Attendant] Managers can now modify grouped-owned Virtual Attendant behavior from the group's profile page.
* [Profiles/Groups/Snippets] Managers can now manage group-owned snippets from the group's profile page.
[Worklists/Filters] Fixed an issue with the reusable worker filter on views.  It didn't always resume the same operator.
[Profiles/Scheduled Behavior] Behavior is no longer scheduled from the Scheduled Behavior tab itself, since this showed things the current target had scheduled, not things scheduled on them.  This made profiles more confusing than just having the familiar 'Virtual Attendant' button at the top of the page.
[Virtual Attendants] Fixed a variable typo in the 'Before sending mail' event.