ENHANCEMENT: allow overridable JS/CSS minification

This allows someone to extends Requirements_Backend and plug in their own minification
of files, including CSS minification.  It also allows them to override whether or not
the header comment is written for each file.
Behat: Backport improved dropdown step handler
MINOR: equality check consistency

Updated all equality logic checks to use double == for consistency across the page.
Merge pull request #2069 from stevie-mayhew/patch-1

MINOR: equality check consistency
Test $allowed_actions on controllers with template name=action conventions
Always load preview when in preview mode, not in edit mode
API New CMSForm class to allow validation responses in CMS (fixes #1777)

Thanks to @willmorgan for getting this discussion started
(see https://github.com/silverstripe/sapphire/pull/1814).
Consistent Form setters (returning $this on setHTMLID())
BUG Resize infinite loops in IE8 (fixes #575)

IE8 gets a bit confused and fires resize events
when element dimensions in the DOM are changed
as a result of a resize event, causing an infinite loop.
Apart from artificially throttling the event, the only solution
I've found is to check for actual window dimension changes.
http://stackoverflow.com/questions/12366315/window-resize-event-continually-fires-in-ie7?lq=1

This implicitly fixes an issue where TreeDropdownField panel isn't
accessible in the "Insert Media" popup, because the resize event happes
to be triggered by the popup overlay, and in effect closes the drop down
panel right after opening it.

Relating to the jQuery UI component, there's a host of issues and discussions around this, but no solution…
http://bugs.jquery.com/ticket/4097
http://bugs.jqueryui.com/ticket/4758
http://bugs.jqueryui.com/ticket/4065
http://bugs.jqueryui.com/ticket/7514
http://bugs.jqueryui.com/ticket/8881
https://groups.google.com/forum/?fromgroups#!topic/jquery-ui/fDSvwAKL6Go
http://www.mail-archive.com/jquery-ui@googlegroups.com/msg04839.html
Min/max constraints for CMS dialog
Moved GridField table padding to buttons

Avoid double padding when no bottom buttons exist
.field.noborder style, use it in "Insert Media" dialog
Hide "delete" button in "Insert Media" dialog
Reduced URL field width in "Insert Media" to avoid wrap

450px width are often not available to the dialog (with all margins/paddings subtracted from the window).
Ensure the URL doesn't cause an unnecessary wrap. Ideally we can size this to the dialog width
automatically of course.
Tighten "Insert Media" dialog layout

Reduce space usage to fit into typical dialog dimensions without scrolling
Add new files in "Insert Media" at start of the list

Makes the change more obvious without requiring to scroll
to action origin (upload button) out of view
Show edit form in "Update Media" by default

Was showing collapsed UploadField row before which doesn't make a whole lot of sense.
Hide titlebar in "Insert Media" when updating images

It doesn't make sense to show it there, since the "delete"
action has no effect, the "edit" button only collapses (useless),
and the thumbnail duplicates.
Consistent dropdown styles between chosen.js and treedropdown

Removed trigger background. Incidentally this also makes it less
obvious that the trigger has too much padding on the right
(which I can't figure out ...)
Localization-resilient SCSS selector (fixes #1590)