Fix use of unsigned integers where signed integers should be used in precise_time_ns
The QueryPerformance* functions take a LARGE_INTEGER, which is a signed
64-bit integer rather than an unsigned 64-bit integer. `ts.tv_sec`, too,
is a signed integer so `ns_per_s` has been changed to a int64_t.
Add asserts to check for failures of the QueryPerformance* functions in precise_time_ns
Closes #2675.
auto merge of #10403 : poiru/rust/issue-2675, r=alexcrichton

Closes #2675.