Add SwatString::getTimePeriodParts()

Breaks getHumanReadableTimePeriodParts() into two methods:
 * getTimePeriodParts() keeps all the logic of defining the $interval_parts you want returned, and calculating them.
 * getHumanReadableTimePeriodParts() is rewritten to use getTimePeriodParts() internally, but maintain old behaviour.

Using getTimePeriodParts() means you can keep the benefits over a straight DateInterval, without being forced to use getHumanReadableTimePeriodParts() strings.