Fix normalize_timestamp() for datetime < epoch with microsecond>0
the problem was for datetime<epoch, the timestamp is negative, but since
it's a float that includes the microseconds, if both are true (< epoch
and microsecond > 0), then the computed (int) timestamp was off by one.
Add dedicated tests for this.