feat(validation): validate custom form fields

Custom form fields will be validated, assuming they include
a hidden input that mirrors the validity of the custom form field.
A reference to the CE should be present on the hidden input via a
customElementRef property.

ref #6
chore(cleanup): tidy up the code