FIX: Edge case attempting to destroy uninitialized tabs

Another edge case very similar to
https://github.com/silverstripe/sapphire/commit/07fb7563273fa82bd93eb255
70571c0a298198e5
Fixed /admin/pages/publishall link in docs
Merge pull request #1739 from kinglozzer/leftandmain-uninitialized-tabs

FIX: Edge case attempting to destroy uninitialized tabs
BUG Fixed broken ErrorPage icons in CMS view
Merge pull request #1746 from tractorcow/3.1-errorpage-icons-fix

BUG Fixed broken ErrorPage icons in CMS view
BUG: Allow empty else- and else_if-blocks

This fix allows empty else and else-if blocks to be processed, fixes #1660
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
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