Added API docs, improved docstrings

This adds API docs for the public API, and means that we can hyperlink class and methods names in the docs to the docstrings.

This helped me review the API too, so I have a few questions:

* we sometimes refer to structures, and sometimes nodes - to avoid confusion, should we always use structure/structures? (e.g. ``prefix_structures`` or ``all_structures``).

* in the ``Structure`` class, we sometimes use two properties such as ``indices_all`` and ``indices`` to refer to including and excluding the sub-tree, and sometimes use one method with a ``subtree`` option. I feel like this should be more consistent - what do you think?

I will continue to work on this and will add an API docs page for the PP/PPV catalog makers so we can link to those too.

cc @ChrisBeaumont