stmhal: Fix bug where negative delay/udelay lead to huge delays.

A negative ms/us is now treated as a delay of 0 ms/us.  This patch also
improves the calibration of udelay.