Merge pull request #2887 from markstory/3.0-form-datetime

3.0 formhelper datetime
Code cleanup.
Merge pull request #2889 from ADmad/3.0-formhelper

Code cleanup.
Renamed class InputRegistry to WidgetRegistry.
Renamed FormHelper::inputRegistry() to FormHelper::widgetRegistry().
Merge pull request #2893 from ADmad/3.0-formhelper

Renamed class InputRegistry to WidgetRegistry.
Re-enable the day() tests for refactoring.
Update day() to use datetime widget.

Update the day() method and its tests.
Handle null/true/false in datetime value handling.
Re-enable tests for month() method.
Allow names option to overwrite options for month picker.

This is a feature FormHelper currently offers, maintain it in the new
implementation.
Get month() working with the new widget class.
Re-enable year() tests.

Remove duplicate tests and tests that are no longer valid. Values of '',
and `false` will now select the empty option.
Fix ordering. I got desc/asc backwards like I often do.
Update year() to work with the datetime widget.
Refactor duplicate code into a method.
Fix missed case for midnight in 12 hour format.
Fix errors in 24 hour time generation.

24 hour clocks go from 0-23 no 1-24.
Update hour() picker to use datetime().
Unskip tests for minute().