API: Form and Field ID attribute should follow HTML specification

Fixes: http://open.silverstripe.org/ticket/4431.

Changes Form and Form Field classes to make use of Convert::raw2htmlid() which follows http://www.w3.org/TR/REC-html40/types.html#type-cdata.

Marked as an API change as it potentially will break javascript / styling and custom form fields.
Remove ComplexTableField documentation.
Update HtmlEditor for new FormField ID's (see #1873)
Remove reference to ComplexTableField and todos which have been fixed.
Update core fields for compatibility with #1873