[CLN] resolve circular Period dependency, prepare setup.py
For a long time there has been a comment in `_libs.__init__` saying it would be nice to import `Period` directly but that is not possible due to circular imports.  This resolves that issue.

Also does some cleanup in setup.py, motivated by the goals of a) using `cythonize` and b) implementing test coverage for cython files.  I've gotten those working locally, but they involve big diffs, so this gets some of the easy stuff out of the way.