FIX Add SiteTree link tracking as an extension, and apply to SiteTree 

Fixes https://github.com/silverstripe/silverstripe-cms/issues/804 by moving tracking into an extension. See https://github.com/silverstripe/silverstripe-framework/pull/2301 for the removal side in framework.

Prior to this patch, if you used an HTMLEditorField _anywhere_ it would attempt to set HasBrokenField, etc, on the associated model. So you could theoretically create the right many_many associations on your custom DataObject child class & have it track links to SiteTree objects (although that was never documented, so not sure if anyone ever did).

So I extracted the code into an extension rather than moving it all into SiteTree. That way, if you add the extension to a DataObject, you can keep tracking links in html fields from DataObjects to SiteTrees.