Add support for milliseconds in json dates

- toJSON now includes milliseconds when converting dates, using
  the format "yyyy-MM-ddThh:mm:ss.fffZ". (3 decimal points on seconds
  seems standard)
- fromJSON supports dates specified with and without milliseconds
- updated DateTimeOffset conversion similarly