Add setup.py, enhance documentation, and add basic Sphinx documentation based on autodoc.