Changes for DateTime API

These changes are not new features, just minors refactors and shouldnt affect current implemented features.
One of the commits is for new rules about Self types parametrized.