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.
What happens to invalid formats? Should the string be reduced to an empty string or `null`?