Timex bugfix and improvement

This branch fixes two bugs in timex and adds one minor feature to timex.
Also included are some unit tests for timex.

The two bugs:
1. The check for an integer overflow in timex_add is nonsensical and should be replaced by the code portion below this check (which someone commented out).
2. timex_sub fails to calculate the correct time if a.microseconds < b.microseconds. This is fixed by
the code in this branch.

Feature added:
timex contains a function which converts a timex_t type to uint64_t. It would be nice to have a function which could convert a uint64_t back to a timex_t type. The new function timex_from_uint64 does exactly that.
If this is not paid work, then don't put the FU as author here. Actually, if this were paid work, then the FU were the copyright holder, not the author.