FIX: Rewrite Member getCMSFields to ensure updateCMSFields is only run once (fixes #2827)

Fix usage of  inside closure

Can't use self:: in closure either

Basic unit tests to check extensions are applied correctly
Remove trailing dashes from URLSegment
Merge pull request #2850 from kinglozzer/2827-member-extend

FIX: Rewrite Member getCMSFields to ensure updateCMSFields is only run once (fixes #2827)
Upload: retrieve existing File if an object without an ID is given and replaceFile=true
Rewrote usages of error suppression operator
Merge pull request #2925 from tractorcow/pulls/3.1-remove-error-suppression

Rewrote usages of error suppression operator (3.1 version)
Merge pull request #2922 from JayDevlin/2904-upload-loadintofile

BUG Upload: loadIntoFile() duplicates files if replaceFile=true
Merge pull request #2871 from feejin/urlsegment-trailing-space

BUG Trim URLSegment before applying replacements in filter