Update Unit Tests

Update the unit tests for the Calendar and Factory classes, including adding more fixtures, to test the new helper methods for creating the time periods.
Enable Day Iteration

Implement the Iterator interface in the Day period class, so that hours within that day can be fetched.
Update Week Period

Update the week period class constructor to use the DateInterval defined in its own dedicated method, than defining it again in the constructor.
Update Day Period

Make an exception to acompany the Day period class, and check the validity of passed start dates in the constructor to ensure it follows the same pattern as the other period classes.
Update Unit Tests

Various improvements to the unit tests to increase the code coverage percentage.