Date select filter

This pull request refactors the callback filters used in date and date time select form elements into concrete filters. This allows the filter to be reapplied when the user is using annotations and sets prefer_form_input_filter to true (as is done by default by Doctrine's form annotation builder) fixing a bug with validation.

As a bonus, the filter also contains flags to return null if the data select is empty (currently, empty selects return a string of -- or -- ::) The Date validator has also been updated with a flag to allow for this new behaviour.
Invalid formats shouldn't be too much of an issue, the variable is defined within the class with no options to change it - an invalid format is a developer error so the PHP warning/error which will result from an invalid format is the best option.

More concerning is if value doesn't contain enough values for the format specified - which could occur from user input I'm going to have a think about the best way to handle this.