Fix for issue #44

When you set the month in JS, if the current day is greater than the number
days in the new month, the date will be updated to acccount for that by
bumping the date out to the next month.

e.g. (Jan 30).setMonth(1) will result in Mar 2 since Feb only has 28 days.

The proposed fix sets the date first to be never more than the potential
number of days in the month, then sets the month.

Also, for direct access to the month, we set the desired day first THEN
the desired month. This accounts for the case where you are on Jan 30, then
hit the "1" for February and it jumps to march.