[CHD-3513] [Aesthetics] Fixed an issue where the search menu disappeared behind the 'hints' popup of Quick Search.
* [Devblocks/Workspaces/Charts/Plugin Development] The Devblocks HTML5 charting library now mediates all mouse interaction with the charts. Listeners can bind to 'devblocks-chart-click' or 'devblocks-chart-mouseover' to receive updates about user input.  The returned event includes information about the closest data point to the mouse cursor, including chart coordinates.  This saves the caller a lot of work when designing interactive charting elements.

* [Workspaces/Dashboards/Line Charts] Line chart dashboard widgets now display a horizontal line through the selected data point to make lateral comparisons easier.

* [Workspaces/Dashboards/Scatterplots] Scatterplot dashboard widgets now display crosshairs that intersect at the selected data point. This makes comparisons easier in both dimensions by creating quadrants.

* [Workspaces/Dashboards/Gauges] Gauge dashboard widgets now display their labels below the widget for uniformity.
* [Virtual Attendants/Variables/Lists] When a Virtual Attendant behavior has a list variable, the resulting worklist view_id will now be saved in the dictionary in the format 'var_name_view_id'.  This allows reuse of the underlying worklist for all kinds of functionality.  Notably, it's currently used to send worklists to the mobile app.  It could also overcome the 100 object limit of list variables now.
6.5-dev checkpoint
[Code Cleanup]
* [Calendars] Fixed an issue where long-running calendar events that started before and ended after the current month wouldn't be displayed as spanning the entire month.
[Code Cleanup/Platform/Mail] The CerberusMail::sendTicketReply() function now returns the new message_id value.
* [Platform/Contexts/Plugins] Added a getPropertyLabels($dictionary) method to Extension_DevblocksContext extensions. This provides more terse human-readable text for labels when dictionaries are used on worklists and profiles (particularly in the mobile interface where spaces is limited).  For example, "Ticket initial message sender address" can be abbreviated to "First wrote".

[Mobile/Dictionary/Usability] Implemented getPropertyLabels() on all core Context_* classes.
[Code Cleanup/Localization/CRM] Removed extraneous localization strings for 'created' and 'updated' on CRM opportunities since 'common.created' and 'common.updated' already exist.
[Code Cleanup/Platform/Contexts] Context dictionaries will no longer include extraneous entries for __types and __labels on nested objects.  For instance, on a ticket dictionary, there were entries for 'owner__types', etc.  These are already included in the global '_types' entry.
* [Mail/Display] Fixed an issue when displaying tickets where very long messages (i.e. over 1MB) could cause a PHP timeout before the page was displayed.  This was caused by attempting to auto-hyperlink URLs found within the email message, and it was exacerbated if 'read all' mode was always enabled when reading tickets.  Cerb will no longer attempt to auto-hyperlink URLs within messages that are greater than 512KB in length.
[Platform/Templates] Added a 'devblocks_email_quotes_cull' modifier to the Smarty template scope.  This is used to remove deeply nested quoted content.  At the moment it's used by the mobile interface to reduce the amount of text edits required when replying.
* [Platform/Plugins/Search] Devblocks now provides an 'OPER_CUSTOM' operator for DevblocksSearchCriteria objects. This allows the caller to provide their own WHERE clause.  For example, in some situations a query needs to modify a value before doing a comparison on it (e.g. field_value+5 > other_field_value).
* [Devblocks/Placeholders/Usability] The 'devblocks_prettytime' modifier in placeholders now outputs 'just now' instead of '0 secs'.
* [Calendars/Datasources/Performance] On calendars, worklist datasources were previously inconsistent in that the 'end date' could use placeholders while the 'start date' required a specific date field.  This option was provided so that events could be arbitrary lengths; however, it wasn't possible to efficiently determine the events that needed to be displayed for a given month because the placeholders would have to be evaluated for every record in the database.  In order to fix this issue, the 'end date' for worklist datasources on calendars now requires an explicit date field.  Event durations can be set by using the new 'offset' fields for the start and end dates.  For example, an event can end using the same field as the start date, but with a "+2 hours" offset.  These offsets are much more efficient to process algorithmically in the database than open-ended placeholders.

* [CHD-3515] [Calendars/Datasources] Fixed an issue with displaying worklist records on calendars when the events didn't start and end within the same calendar month.  For example, if an event started on August 31 2013 and ran for 3 days, it wasn't being displayed on the September calendar.
* [Virtual Attendants/Actions/HTTP Requests] A new 'Execute an HTTP request' action in Virtual Attendants allows them to send and receive data with other apps and services.  The results of an HTTP request are stored in a custom placeholder that can be used by subsequent outcomes and actions. JSON responses are automatically converted to an object.  Image resources as a response (e.g. PNG, GIF, JPEG) are converted to base64 text.  For example, when new mail is received a Virtual Attendant could send relevant details to an external URL (like a webhook).  A behavior could also request information from any source as a URL; e.g. datacenter temperature, website traffic, monitoring metrics, etc.
6.5-beta checkpoint
[Code Cleanup]
[Platform/Notifications] Added a Model_Notification::markRead() convenience method.
[Code Cleanup] Translations cleanup