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
ENHANCEMENT: Allow programmers to set OwnerID for new files.

NOTE: This change should be reviewed to make sure it does not cause any side effects.

Example use case: 
    An admin porting user images from an old website.
    The script would put the images in the assets folder,
    and then insert them into the database using Image::write()
    and data from the old database.

public function insertImage($data) {
    $image = new Image();
    $image->ParentID = $data->parentId;
    $image->Title = $data->title;
    $image->FileName = $data->filename;
    $image->OwnerID = $data->ownerId;
    $image->write();
    
    // In the current version, this results in all images
    // being owned by Member::currentUser() instead of 
    // the expected $data->ownerId;
}
Merge pull request #2096 from CheeseSucker/patch-1

ENHANCEMENT: Allow programmers to set OwnerID for new files.
[MINOR] Typo
Coding conventions, PHPDoc cleanup
FIX Allow filtering on joined columns
Update module development, remove outdated release steps
Merge pull request #2098 from CheeseSucker/patch-2

[MINOR] Fixed typo
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