Clarified the messaging for selected date exceptions.

 Currently, if you set a date range and try to select the last date in that range, it throws an exception but the messaging was vague. Not knowing that the max date is excluded from the date range made this error harder to debug than it should have been. Also, I added unit test that would break if this current API behavior is violated in the future.