Refined the datetime support to use a custom directive.

The directive uses Modernizr to determine whether to render a
HTML5 datetime-local widget or not. If datetime-local support is
absent in the browser, then the widget uses the fallback text
input field with custom form validation. The validation is done
via AngularJS formatters and parsers.