Fix next_date calculation

Fixes #6. `next_date` attempted to calculate the date of a given weekday
in a given week of the month, instead of the date of a particular
instance of a given weekday of a given month. This assumption fell down
when attempting to find the first incident of a weekday in a month that
started on a later day of the week. For example:

    >>> calendar.monthcalendar(2014, 11)[0]
    [0, 0, 0, 0, 0, 1, 2]
    >>> calendar.monthcalendar(2014, 11)[0][3]
    0

The new method finds the date of a given instance of a weekday for the
month within which the "after" date falls. If the result is later than
the desired date, return that one, otherwise the date of this day in the
next month must be the least greater date.