Add setup.py and improve documentation.