Better error handling for date picker

* Use nice 404s
* Correctly zero-pad numbers
* Formally account for bad data
* Use initial values and maxlength on the input fields