Fix typo in comment
Refactor - split implementation code from "python" code

The core implementation is now split up into two parts:

* The thin library wrapper code (impl_cffi)
* The OATH API (used by the consumer)

This paves the way for other library wrapper implementations to be
written, such as via Cython.

An additional benefit is that the consumer API uses a singleton of the
wrapper code, so oath_done() can be called when that singleton is no
longer in use and garbage collected.