Fix msToTicks for values > 2^32/1000

Previously, the multiplication would overflow, causing incorrect
results. Now, the same approach as forf ticksToMs is used, where
division happens before multiplication and a second calculation is used
to correct the precision lost by dividing.

Fixing this allows power.sleep to sleep for more than 4294 seconds.

Closes: #220
Merge pull request #221 from Pinoccio/sleep-fix

Fix power.sleep when trying to sleep > 4294 seconds