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.