Added composer.json
API Hash autologin tokens before storing in the database.

Backported from 3.0, cc423c38fbc6755f4e29024590c1b42092b3a621.
Added travis support
Added README with build status
Added cms to travis requirements
Excluded or removed tests relying on actual webserver routing

The "sanitychecks" group excludes through phpunit.xml.dist.
Removed RestfulService->testHttpErrorWithoutCache()
since its not sufficiently isolated in terms of testing.
Has been refactored in 3.x, but too intrusive to backport.

Changes mainly necessary to get Travis builds passing,
since we don't want to start mucking around with
dynamically generated file-to-url mappings just to
get *unit* tests passing - as opposed to integration-testing
the whole environment incl. webserver.
API Rename Transliterator to SS_Transliterator to remove conflict with Intl extension
Merge pull request #977 from simonwelsh/rename-Transliterator

API Rename Transliterator to SS_Transliterator to remove conflict with Intl extension
Fixing .htaccess to ignore rewriting PHP files directly
Fixed DateTest timezone settings

Backport from 3.x, see d1a9e2b3 and 0aeda5c9
Support for composer-created themes dir structure

Due to git limitations, we can't check out the blackcandy
"parent" theme into themes/blackcandy/ directly, since that
would require sharing paths with git repositories of other themes.
Fixed HTML syntax in config-form.html
2.4.9 changelog
Improve class naming and docs for DataList::applyFilterContext()
tinymce language portuguese is not working
BUG Hardcoded project name in include_by_locale()

include_by_locale() should not use hardcoded default project name 'mysite' (fixes #7969).
SimpleXML string casting in tests for older PHPUnit
BUG SS has problems handling + in URLs. Filter them out.

+ has a special meaning in the URLs so overall it's a good idea to
strip them out. Otherwise they would need to appear in their ugly url
encoded form "%2B".

Refer: http://open.silverstripe.org/ticket/7929
BUG removeRequiredField() should use array_splice() instead of unset()

Function unset() preserves numeric keys and method removeRequiredField() will give a PHP notice about nonexistent array key and loop won't iterate throughout all elements in array on second method call (and all subsequent).
So it's better to use foreach loop and array_splice() function (it doesn't preserve numeric keys).
BUG: Right click on LeftAndMain menu caused CMS preview window to open

The onclick event for LeftAndMain menu links didn't check if the click
was left or right, meaning that right click events could trigger the
function for loading split view mode in some browser/os combinations.