months and years are stored as decimals. enforce that in the constructor

27eb4b1b7a0b21cb5bf36094bd56c34ee2a73112 introduces a test failure under Python2.6:

```
======================================================================
FAIL: test_parse (isodate.tests.test_duration.TestParseDuration)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/stefanor/git/isodate/src/isodate/tests/test_duration.py", line 360, in test_parse
    self.assertEqual(result, expectation)
AssertionError: isodate.duration.Duration(0, 0, 0, years=0, months=0) != isodate.duration.Duration(0, 0, 0, years=0, months=0)

----------------------------------------------------------------------
```

This is from the test case:
```
                    'P0.5Y': (Duration(years=0.5), D_DEFAULT, None),
```

We should transform that 0.5 to a Decimal.