Split Core.php into Constants.php and Core.php and adjust main.php startup

The recent flush filter fix had a problem that you couldnt set a custom
BASE_PATH in _ss_environment because that file didnt get included until
after checking the confirmation token. This patch pulls the part of Core.php
that defines BASE_PATH into a seperate file that can be included earlier
in the startup sequence so that ParameterConfirmationToken can access it.

Core.php includes Constants.php with a require_once call, so for startup
scripts that dont pull in Constants.php themselves (like cli-script.php)
no change is needed.
FIX Only suppress fatal errors
Merge pull request #2255 from hafriedlander/fix/flush_30

Split Core.php into Constants.php and Core.php and adjust main.php startup
BUG Fixed divide by zero with SetRatioSize on missing image file
Fixes issue #2047
Merge pull request #2256 from tractorcow/3.1-setratiosize-dbz-fix

BUG Fixed divide by zero with SetRatioSize on missing image file
Fixed CountryDropDownField showing East Germany
FIX Nice errors and allows flush on module removal
Merge pull request #2260 from ARNHOE/3.1-fixedeastgermany

Fixed CountryDropDownField showing East Germany
Merge pull request #2257 from hafriedlander/fix/flush_30

FIX Nice errors and allows flush on module removal
Merge branch 'origin/3.0' into 3.1
Updated fieldgroup class and example code
Updated field class to use doubleborder mixin
Added chosen.js support to dropdown in fieldgroup
BUG Fieldgroup styling
fixed undefined offset #2276
Minor bug fix to show link description field 

When adding a link, the description field was present, but hidden. Adjusted javascript to show the description field
Fix misleading documentation about Children.max

Currently, the documentation implies that doing a `Children.max(LastEdited)` will work, which isn't the case.
This change uses `AllChildren.max(LastEdited)` instead, which while slightly more inefficient, will actually work consistently.
Merge pull request #2279 from ss23/patch-7

Fix misleading documentation about Children.max in partial caching
Fixing expanding/collapse CMS menu targeting wrong element

If a user clicks the log out button (for example) and the menu is
collapsed, the menu expands and then you have to press log out
again
FIX: pass controller as reference inside closure.

Non referenced causes segfaults on PHP <= 5.3.8 environments when opening subtrees in the CMS. Likely the cause of silverstripe-cms/issues/803.