Changed the API to have only one Factory, changed the package of the DateImpl, TimeImpl and DateTimeImpl to 'internal.gregorian' and ported part of the code from Date4J to the DateImpl.