Merge pull request #220 from dstockwell/hierarchy-error

Generate actual HierarchyRequestError
New Timing interface
Update tests to use iterationDuration in place of duration
Simplify cloning of timing
Make Timing mutable and calculated properties on TimedItem read only
Use TimedItem.iterationDuration in tests.
Use null internally for linear timing. Handle special cases in iterationCount, iterationDuration and activeDuration
Rename TimedItem.timing to specified
Clean up preset timing functions
Rename TimedItem.animationTime to _animationTime
Rename TimedItem.iterationTime to TimedItem._iterationTime