Fields Refactor

Hi Roland, can you see what do you think about these changes? this push is a branch of  tests_date_time. 
I tried to break each field in object.. the next step im thinking is to use something lise those builders you did for period. 
example:
days.between(x,y)
days.until(x)
.... 
and do usefull methods for all fields...

Can you comment about this idea? i can change if necessary