add test that triggers the bug.

Fix: daterange.get_month_by_id: bad modulo used.

the given month id is 1 based : 1 == january -> 12 == december.
but we "% 12" it so the result is 0 -> 11.

but Daterange.months values goes from 1 -> 12 ..  BAM.
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.
Merge pull request #1387 from gst/fix_issue_1385

Fix : issue #1385