Add granulating the time range

Granulating means splitting the time range into exclusive time
ranges of years, months, days and whatever is left.
Ok, I now see we're depending on ActiveSupport's Time extensions. I'm still not sure whether this dependency is warranted, but then again I'm new to this code, and sure enough those methods are handy. Still, I would not want to pull ActiveSupport in if I was to use this gem on a project of mine.