SERVER-7588 Improve logic for seconds and milliseconds in ISODate constructor

Do not use floating point for seconds, only for milliseconds.  Adjust other
date components when milliseconds round up to 1000.