Validation for S3 UI fields

Closes #30 

Uses the new i18n system for error messages, and HTML5 form validation attributes.
Yeah my bad I forgot to lint. I should set up a post-commit hook or something.