Allow arbitrary number of milliseconds in iso format

According to the standard (I'm not sure actually), arbitrary number of
subsecond precision digits can be specified. Read all of those and ignore
everything after the third. This makes sure that iso formats actualy consume
the whole string.
Merge pull request #1213 from ichernev/bugfix/allow-arbitrary-ms-iso-format

Allow arbitrary number of milliseconds in iso format