Fix issue #1385

Solution:
+ don't modulo the given month_id
+ better/simpler class methods: Should not be called with invalid input (month or day (id or not) not valid).
+ For consistancy against everything : Use python newstyle class for Daterange and Timerange.
+ tests.

Python26 don't like dict comprehensions.