* [Import/Platform/Plugins] A new import service makes it much easier for any kind of object to provide bulk insertion and update functionality through uploaded import files (including objects that come from plugins).  Previously import functionality was only available for addresses, organizations, and opportunities; and each one implemented it differently.  Plugins can use the IDevblocksContextImport interface to take advantage of the new service.

* [Import/Platform/Plugins] The new import feature now allows fields to be set using a combination of imported file columns, placeholders, and literal text.  For example, when importing opportunities a worker can manually set a 'campaign' custom field from the UI rather than having to edit the file before uploading it.  This can also be more involved; the value for a field can be synthesized based on a combination of other values.  For instance, when importing a large number of opportunities they can be marked as 'closed/lost' only if their last activity date is older than 60 days.  This logic can occur during the import rather than when preparing the file.

* [Import/Platform/Plugins] The new import feature now provides contextual hints based on the type of field being set.  For example, a checkbox field has options for 'yes/no', a date has a shortcut for 'now', and there's a worker field shortcut for 'me'.

* [Import/Platform/Plugins] The new import feature now provides a preview of the changes that will be made.  This assists with fine-tuning the import configuration.

* [Import/Platform/Plugins] The new import feature is now more flexible in the values it accepts for different kinds of fields.  For example, the values for a checkbox field can be 'yes/no/true/false/y/n/t/f/0/1'.  Workers can be provided as partial matches -- e.g. 'Joe' will match 'Joe Worker'.

* [Import/Platform/Plugins] The new import feature allows specific fields to be marked as 'required' or 'force-match'.  Required fields must be provided by the import file or synthesized.  Fields that are force-matched will always be included when looking for existing records to update.  For example, you never want to import the same email address in your address book, so that field is set to 'force-match'.  If an imported email address matches an existing contact then the existing record will be updated rather than a duplicate being created.  In other situations, like opportunities, it is desirable to be able to have multiple opps with the same email address (e.g. in different campaigns).
* [Import/Addresses] Implemented the new import functionality for address records.
* [Import/Orgs] Implemented the new import functionality for organization records.
* [Import/CRM/Opportunities] Implemented the new import functionality for opportunity records.
* [Search] Moved the new global search feature to the top navigation menu rather than burying it in Workspaces.  This makes it easy to quickly jump to the search results of any kind of object from any page within the app.
* [CRM/Opportunities/Search] The Opportunities tab from Activity has been moved to the new global Search page.

[Code Cleanup] Moved the opp display page to the profiles controller.  Abstracted the peek popup.  Removed the hardcoded quick search feature.
* [Address Book] The Address Book page has been removed and its content (addresses, orgs, contacts) has been moved to the new global Search page.

[Code Cleanup] Removed the hardcoded quick search from addys and orgs.
* [Knowledgebase] Moved the Search tab from the Knowledgebase page to the new global Search page.

[Code Cleanup] Removed the hardcoded quick search from KB.
* [Import/Tasks] Implemented the new import functionality for tasks.
[Code Cleanup] Switched addresses to the abstracted peek popups.  Made template names consistent with the rest of the project.
[Code Cleanup] Switched orgs to the abstracted peek popups.  Made template names consistent.
[Code Cleanup] Made template names consistent on tickets
[Search] The search worklists will now properly persist the changes made to them by workers.
5.8-dev Checkpoint