Check for empty localarrays when Distributions are made

This adds checks to all the `Distribution` creation paths to make sure that no empty localarrays are created. This should fail several tests until PR #444 is merged. This closes issue #445.

This also adds a `Distribution.localsizes` instance method, which returns the sizes of the localarrays.