use timeit module to get most accurate timer for current platform

This branch uses `timeit.default_timer()` to replace use of `time.time()` for calculating elapsed time (time_taken).

The reason for this change is that time.time() is not always the most accurate timer available for a given platform.  timeit's default_timer() always is.