Validation for S3 UI fields

Closes #30 

Uses the new i18n system for error messages, and HTML5 form validation attributes.
I guess the pattern is better because then you get validation-as-you-type for free, even if the code is less clean.