Reject the date when the year and/or month is missing

This will set the date to null instead of erroring out when
trying to create the Date object when some of the parameters
are blank.
Yank the magical default for the day attribute
Get rid of some duplication in the date tests
Merge pull request #50 from tevanoff/handle-blank-date-params

Reject the date when any of the date params are missing