Replaced the complex table field used for editing the email recipients with GridField
Replaced instances of SAPPHIRE_DIR with FRAMEWORK_DIR
Replaced instances of sapphire/ in css and templates with framework/
Re-organized tabs on user defined form so they are top level
Replaced calls to toDropdownMap() with map()
Renamed getCMSFields_forPopup() top getCMSFields()
API change: refactored Form() into getFormFields(), getFormActions(), getRequiredFields()
ENHANCEMENT: added updateForm* extension hooks to allow customization of userforms
BUGFIX: gave custom scripts their own ID to enable it to be blocked.