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
Better visibility of key phrasing
Combine form validation topic with forms topic

- Proofread entire file (forms & form validation topics)
- Re-wrap paragraphs to 80 columns
- Correct/update links from other doc files
MINOR Corrected links for 'Topics' documentation index
Add support for many_many_extraField in YAML

Format is

RelationName:
  - =>Obj.name:
    ExtraFieldName: "Foo"
Allow vetoing forgot password requests
Update shortcodes.md

Trying to link to [embed] causes the parser to break. (see: http://doc.silverstripe.org/framework/en/reference/shortcodes)
Update File.php

Adding warning, took me a couple hours to figure this out...

The file does not get moved because of this line:
https://github.com/silverstripe/silverstripe-framework/blob/3.1/filesystem/File.php#L515

Maybe add to the method doc, telling people to set ParentId and Name instead if they want to change the location of a file (if that's the correct method).
FIX: getMessageFromSession returning null on first access
Remove redundant underscore and update the comment
Added 3.1.3 changelog
Merge pull request #2905 from feejin/urlsegment-leading-dashes

Fix: remove all leading dashes from URLSegments
Merge pull request #2899 from IgorNadj/patch-1

Update File.php
Merge pull request #2898 from torleif/patch-1

Update shortcodes.md
Merge pull request #2889 from howardgrigg/patch-1

MINOR Corrected links for 'Topics' documentation index
Merge pull request #2870 from svandragt/patch-1

Better visibility of key phrasing
Merge pull request #2867 from oddnoc/form-docs-consolidation

Combine form validation topic with forms topic
Merge pull request #2893 from silverstripe-iterators/pulls/forgot-password-veto

Allow vetoing forgot password requests
Update css.md
Reset FailedLoginCount on successful password reset