DateField.js event selector regression (fixes #1528)

See 19a8545076f477d15aa5ed7fe52af020f43d28ab
Revert deprecation of Object::add_extension() usage

This reverts commit 14b997eea3c2a541fe842025b4f7ff76bd74fba9.
Its just not practical to use the Config API as it stands,
the add_extension() wrapper does more than just a Config->update().

Most use cases can be covered via YML, but any conditional
additions (e.g. in unit tests) can still benefit from the
add_extensions() shorthand.
API: used call_user_func_array in order to have an arbitrary number of parameter for getFormattedImage (fixes #1752)
Merge pull request #1753 from g4b0/1752-image-manipulation-parameter

API: used reflection in order to have an arbitrary number of parameter
Fix broken CMSSettings saving

Regression from da7e515d1331693422457054997092ef0b31c437
BUG Security::permissionFailure() fixing permissionDenied hook inconsistency

permissionDenied only works if Security::permissionFailure() is called when
there's currently no logged in Member. This fixes it so failed attempts
with logged in Member also includes the permissionDenied hook.

In addition, fix an undefined $member variable
l10n key to make "yes" and "no" translatable (see #1749)
Merge remote-tracking branch 'origin/3.0' into 3.1

Conflicts:
	docs/en/reference/urlvariabletools.md
	tests/forms/CheckboxFieldTest.php
BUG Fixed incorrect variable usage in generation of PhoneNumberField form fields
DatetimeField returns wrong year

This is related to how Zend_Date returns year for YYYY & yyyy format. Detailed explanation is here http://framework.zend.com/issues/browse/ZF-5297

Sample code (adapted the Datetimefield setValue() method) to highlight the problem:

include 'framework/thirdparty/Zend/Date.php';

$userValueObj = new Zend_Date(null, null, 'en_US');
$userValueObj->setTimezone('GMT');
$userValueObj->setDate('2012-01-01', 'YYYY-MM-dd');
$userValueObj->setTime('00:00:00', 'HH:mm:ss');
echo $userValueObj->get('YYYY-MM-dd HH:mm:ss', 'en_US'), "\n"; // returns 2011-01-01 00:00:00
echo $userValueObj->get('yyyy-MM-dd HH:mm:ss', 'en_US'), "\n"; // returns 2012-01-01 00:00:00
Group description in CMSFields
Merge pull request #1758 from chiujl/patch-1

DatetimeField returns wrong year
Merge pull request #1755 from kinglozzer/leftandmain_state_fix

Fix broken CMSSettings saving
Merge pull request #1757 from tractorcow/3.1-phone-field-fix

BUG Fixed incorrect variable usage in generation of PhoneNumberField form fields
Merge pull request #1750 from s-m/1660-elseif-parsing

BUG: Allow empty else- and else_if-blocks
Info about running regular tasks with cron

What commands to use, and good approach to testing
BUG: Fix for #1487

The parser could sometimes generate invalid code if the
source-file-comments were enabled, this moves the comments outside the
html-tag to circumvent these problems, update test as well.
DateField.js event selector regression (fixes #1528)

See 19a8545076f477d15aa5ed7fe52af020f43d28ab
Merge pull request #1726 from s-m/1487-fix-template-comments

BUG: Fix invalid code with source-file-comments, fixes #1487
removing potentially invalid html in email

The generic email template encapsulates the "body" content in a paragraph mark.  This is undesirable as it can lead to invalid HTML. Rather than using a paragraph, it is better to have a div encapsulating the content.

The underlying reason for this is that $Body is usually HTML and this can included block elements (div, p, etc...) that are not allowed within paragraphs (p).

It is important that the HTML is valid, because it will reduce the likelihood for it being marked as spam, because it is less likely to show up strange formatting and for use of tools like emogrifier.