Update generateOccurences() in When\When.

Prevent the method from throwing an InvalidStartDate exception when the start date is not in the list of occurances.
Fix #4 (Issue)

Fixed the bug where the first occurrence after the start date (within the same month) would be skipped if using the `bysetpos` option.
Update generateOccurences() Method

Update the method to better calculate the correct datetimes, especially when working with the `bysetpos` option.
Fix #1 (Issue)

Add the option to declare whether the start date should be an occurrence if it matches the criteria.