Rewrites back end of module to create typed data objects for granularity strings, ISO 8601 Duration strings, and PHP Duration Intervals. Creates new form elements for duration and granularity. The Duration field now stores the number of seconds a duration represents in the database, and queries tagged with the 'duration_string' tag will be able to use mathematical operators (greater than, less than, equals etc) on ISO 8601 Duration strings.