Add error handling for month shift prior to yr 0

Bug exists when a month is shifted prior to 0000/01/01. An endless loop occurs.

This does an error(out_of_bounds) if shifting leads to a date before 0000/01/01.