API: Form Field ID and name attributes should follow HTML specification

Fixes: http://open.silverstripe.org/ticket/4431.

Changes Form and Form Field classes to make use of Convert::raw2htmlname() 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. I've tried to mitigate the backwards compatibility issues by copying the data to the old key layout.