Merged validation config with Widget#buildAttrs

FileInput widgets now support active validation - they were being broken
due to inheriting use of  controlled component when validating.

Deferring all use of controlled components (except hidden fields) for now -
they aren't required for active validation. Use of them could now be made
toggleable, as onChange is already doing the necrssary state updates. The
main use case for them seem to be being able to update field values from the
component side by reflecting state.

Updated tests to account for HiddenField now always rendering a value attribute.