GregorianDate day and month filter

Added filters to GregorianDate, that throws exception if day or month is
leq 0 or if month geq 13
GregorianDate month check and general refactoring

Added checks to all months except february, to check that the number of
days is correct.
Refactored the validation of dates to a private method and added public
field variables for month names.