Implement a Duration data structure

with tests