BUG onDemand plugin fixture

Added trim() to decodePath function. Headers X-Include-* comes with a
space so some files are loaded twice. Looks like that depends on a
webserver. nginx has the space.
NEW: Created LessThanOrEqualFilter and GreaterThanEqualFilter
Added SSViewer::get_templates_by_class() to make the functionality in LeftAndMain::getTemplatesWithSuffix() more open.
Tidy up enum matching where classname is missing
Merge pull request #2707 from wilr/enums

Tidy up enum matching where classname is missing
Merge query strings in $.path rather than duplicating

Fixes common duplications like ?locale=en_US&locale=en_US,
triggered e.g. by gridfield's showDetailView().

See https://github.com/silverstripe/silverstripe-translatable/issues/154
Merge pull request #2708 from chillu/pulls/addsearchparams

Merge query strings in $.path rather than duplicating
Added .content styles to debug.css, removed fieldset styling
Leave original ValidationException intact in write()

If we want DataObject->validate() to be used instead of
the form layer, we should allow for validation errors
to be passed through unchanged to the controller layer
so we can present them to the user. The context of
which class is written should be apparent from the stacktrace
of the exception.
Merge pull request #2714 from chillu/pulls/validate-write-message

Leave original ValidationException intact in write()
Merge pull request #2679 from micmania1/2658-get-templates-with-suffix

API: moved getTemplatesWithSuffix functionality out into a SSViewer
Removed debug code
Added index docs to DataObject

Thanks to @oddnoc for getting this started, see
https://github.com/silverstripe/silverstripe-framework/pull/2686
Merge pull request #2622 from froog/patch-1

Created LessThanOrEqualFilter and GreaterThanEqualFilter
Merge pull request #2615 from a2nt/jquery.ondemand-fix

BUG onDemand plugin fixture