WFLY-2881: Reworks CalendarTimeout wrt proper usage of Calendar#add. Inc...

...ludes fix shown by the CalendarBasedTimeoutTestCase in specific dates, where the CalendarTimeout first timeout has day 1 instead of 0

Besides fixing the concrete issue, this PR reworks the CalendarTimeout, truncating the calendar before setting or adding values to calendar fields, which I think is a better approach, specially since Calendar#add() is a bit unpredictable, for instance adding one year does not always just changes the year, sand the javadoc alerts for that, it may change other fields of the calendar due to years and months with different number of days. The PR also optimizes performance. 
 
This PR is an alternative to https://github.com/wildfly/wildfly/pull/6044