Added timing tests for comparison against existing library.

Existing library uses a loop instead of recursion to solve which is
likely why their implementation is faster.
re-organized tests and filled in holes

Split integration and unit tests up.
Filled in a few holes.
Removed some unnecessary tests.
Cleanup

Removed unnecessary imports.
Made so testing external library is only done on python versions it
supports