Make next_semimonth work with negative n and correct 15 -> 16.
Make next_semimonth work with negative n and correct 15 -> 16.

I was incorrectly writing the code as though the 15th of the month was the first
day of the second semimonth in a month, but this was wrong and also inconsistent
with my earlier beginning_of_semimonth and end_of_semimonth methods.

ddoherty03/fat_core