Fixes#350 and fixes#404
This change abandons validation via EditableFormField::validateField, as it bypassed too many core validation mechanisms (RequiredFields, etc).
In order to enforce consistency of editable field validation, display rules have been hard-disabled when a field is marked as required.
Since this removes functionality, I have incremented the major version number
- Changed configurable static variables to private as per recent API updates to 3.1
- Use of statics as configurable variables replaced with config api usage
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.