Update API docs for 0.5

Fixes and improvements.

1. Add missing modules
1. Add (some) missing module and package docstrings
1. Use the sphinxcontrib-programout Sphinx extension to document the interface to `dacluster.py` and `engine.py`.