Properly handle all ISO formats when parsing date/time strings

The NativeDate class in Rhino 1.7R4 (the implementation of the
JavaScript Date class) is very strict in parsing dates -- much
stricter than the ECMA spec; if the date is not *exactly* in the format
it expects, it fails.

This changeset modifies the parsing/formatting code to use Joda-Time,
which can properly handle all ISO formats.