Add codesniffer that ensures indentation is with tabs.
BUG Fixed issue with convertServiceProperty

Fixed issue where convertServiceProperty is called when creating objects
with user-supplied constructor arguments, so that it's only called when
creating objects using injector configuration. This reduces the overhead
of unnecessary calls to convertServiceProperty.

Updated test cases to validate behaviour
Add codesniffer that ensures indentation is with tabs.
Merge pull request #1007 from simonwelsh/indent-sniff

Add codesniffer that ensures indentation is with tabs
Merge pull request #1021 from simonwelsh/indent-sniff_3.1

Add codesniffer that ensures indentation is with tabs.
Merge pull request #1019 from nyeholt/injector_convert_service_params

BUG Fixed issue with convertServiceProperty
Merge remote-tracking branch 'origin/3.0' into 3.1

Conflicts:
	admin/javascript/LeftAndMain.AddForm.js
	control/Director.php
	control/HTTPResponse.php
	dev/Profiler.php
	email/Mailer.php
	forms/ComplexTableField.php
	forms/ManyManyComplexTableField.php
	forms/SimpleImageField.php
	forms/TableField.php
	forms/TableListField.php
	javascript/ComplexTableField.js
	javascript/ImageFormAction.js
	javascript/TableField.js
	javascript/TableListField.js
	security/Member.php
	tests/behat/features/bootstrap/SilverStripe/Framework/Test/Behaviour/CmsUiContext.php
	tests/forms/TableListFieldTest.php
BUG: Confirmed Password Field now copies attributes to child fields.
API Moved email bounce handling to new 'emailbouncehandler' module
Fixed wrong floating on GridField certain buttons

Regression from 9152387c92, alternative solution to
https://github.com/silverstripe/sapphire/pull/1028
Fix to allow buttons to align inline (fixes #8099)
Moved group member listing utility buttons after field

Stay consistent with main member listing in admin/security,
and de-emphasize their importantce. Having the "link existing"
closer to the actual table is a much stronger UI coupling.
Suppress jQuery UI's borders around tabs in the CMS

Noticed this on the "Groups" tab in admin/security, but
likely a problem elsewhere as well.
Made GridField font size settings less cryptic

Instead of applying it to generic alignment classes like
"left" and "right", make it clear that those are targeted
at all contents of the button row.
Fixed IE7 GridField "add row" alignment issue

Regression from Paul's last commit
Permission list styling improvements (#8100)
API Make DataList and ArrayList immutable

In 3.0 there was some confusion about whether DataLists and ArrayLists
were mutable or not. If DataLists were immutable, they'd return the result, and your code
would look like

  $list = $list->filter(....);

If DataLists were mutable, they'd operate on themselves, returning nothing, and your code
would look like

 $list->filter(....);

This makes all DataLists and ArrayList immutable for all _searching_ operations.
Operations on DataList that modify the underlying SQL data store remain mutating.

- These functions no longer mutate the existing object, and if you do not capture the value
returned by them will have no effect:

  ArrayList#reverse
  ArrayList#sort
  ArrayList#filter
  ArrayList#exclude

  DataList#dataQuery (use DataList#alterDataQuery to modify dataQuery in a safe manner)
  DataList#where
  DataList#limit
  DataList#sort
  DataList#addFilter
  DataList#applyFilterContext
  DataList#innerJoin
  DataList#leftJoin
  DataList#find
  DataList#byIDs
  DataList#reverse

- DataList#setDataQueryParam has been added as syntactic sugar around the most common
cause of accessing the dataQuery directly - setting query parameters

- RelationList#setForeignID has been removed. Always use RelationList#forForeignID
when querying, and overload RelationList#foreignIDList when subclassing.

- Relatedly,the protected variable RelationList->foreignID has been removed, as the ID is
now stored on a query parameter. Use RelationList#getForeignID to read it.
Improve DataList, ArrayList docblocks to explain immutability better
FIX Make sure ArrayList#limit uses clone so for subclasses it returns instances of same subclass
FIX Make sure you can only remove items from a DataList that are actually in it