[Platform/Plugins/Search] Fixed some PHP notices when deeply nesting search parameters.
* [Virtual Attendants/Plugins/Platform] Implemented the ability to 'dry run' Virtual Attendant behavior.  This returns information about the decisions that are made, and the actions that would be executed, without actually making changes to data.  This is used in the upcoming simulator for VA behavior.
* [Mail/Parser/Debug] The email parser can now be instructed to save a copy of all incoming messages prior to processing them.  The original message source for each message is saved in the /storage/mail/archive/ directory and organized by subdirectories for year, month, and day.  This mode can be enabled by defining the DEVELOPMENT_ARCHIVE_PARSER_MSGSOURCE constant as 'true' in the framework.config.php file.  This is useful if you want to keep a record of processed messages for audit control, backups, or if you want to recover the original sources for troubleshooting.
* [Virtual Attendants/Scheduled Behavior] Virtual Attendant scheduled behavior that fails to run will now be deleted rather than accumulating in the queue.  The original intention was to retry them, but in practice a failing behavior will continue to fail and it just wastes cycles.
Code cleanup
* [Virtual Attendants/Usability] Improved the way that menus are drawn when editing Virtual Attendant behavior.  This should fix the issue with menus becoming stuck open when opening several popup editors at once.
* [Setup/Virtual Attendants] Implemented a new Virtual Attendants section in Setup.  You'll find it in the Configure menu.  This page enables administrators to view and configure all VA behavior from a single place regardless of owner.  A text box at the top of the page helps quickly locate the desired roles, groups, or workers.  Selecting an owner will add a new tab to the page with their Virtual Attendant behavior.
* [Setup/Community Portals/Usability] The Community Portals menu in Setup has been moved to an entry in the Configure menu.  This frees up that screen space for use by something that actually needs its own menu.
* [Devblocks/Platform/Plugins/Search/Views] Implemented a new shared 'internal/views/criteria/__list.tpl' template.  This can be used by plugin-provided worklists to set the values of a list-based field using associative keys that differ from the displayed values.  The previous option was using the custom field 'picklist' template, but it only saved the literal labels without the option to use keys.  For example, this can be used to present a list of color options by label (Red, Green, Blue) when filtering, and the value for filtering can be keys instead (R, G, B).  Plugin developers could always implement this functionality themselves, but using this shared template will reduce the number of files in the project, which benefits performance.
* [Virtual Attendants/Simulator] Implemented a simulator for testing Virtual Attendant behavior in a sandbox.  This enables you to see how behavior will respond in any situation without having to test using live data.  Click on any behavior and select 'Simulate' from the menu.  The values used by conditions and actions will be initialized from a sample object.  You can modify any combination of values.  The current time (as perceived by VAs) can be changed for testing time-dependent behavior (e.g. day, night, weekend).  You can use the simulator popup in real-time while making changes to behavior.  This should significantly improve the workflow of creating and testing VA behaviors.
5.8.0-dev Push
Merge branch '5.8-preview' of git://github.com/jstanden/cerb5 into 5.8-preview

Conflicts:
	features/cerberusweb.core/api/dao/context_scheduled_behavior.php
	features/cerberusweb.core/plugin.xml