Add a `from_maps` Distribution constructor

Add a new classmethod constructor to the client-side `Distribution` class (`from_maps`), and have all the other constructors build a sequence of maps and then call this constructor.

Also add and fill out the docstrings for these constructors.