Fixes millisecond parsing in custom DateTime parser

Calling the parser would result in the milliseconds being discarded by DateTime#civil:
```
1.9.3-p547 :003 > DateTime.civil(2010,1,1,1,2,3,123000)
 => #<DateTime: 2010-01-01T01:02:03+00:00 ((2455198j,3723s,0n),+0s,2299161j)>
```
Now they are correctly set:
```
1.9.3-p547 :004 > DateTime.civil(2010,1,1,1,2,3.123)
 => #<DateTime: 2010-01-01T01:02:03+00:00 ((2455198j,3723s,123000000n),+0s,2299161j)>
```

As an added bonus, this also works around a bug in the JRuby implementation of DateTime#civil, where the last argument __must__ be the timezone offset. Whereas MRI just ignores an incorrect offset argument.