Don't use mutable objects as default parameters.
Remove an out-of-date comment.
Tweak a comment.
Remove an error function.
Tweak a docstring.
Fix errors caused by `init_grid_shape` refactor.
Remove an unused constant.
Refactor creation of LocalArrays.

Change the API such that,

in `base.py`:
* `__init__` now takes `dimdata` and optionally a `buf` and a `dtype`.  This will allow users to specify more complex disttypes.
* `_allocate` is now in `base.py` and called directly from `__init__`

in `denselocalarray.py`:
* `from_dap` is a classmethod representing the most general way to create a LocalArray (using the `dimdata` data structure from the Distributed Array Protocol).
* `__init__` is a simplified method that translates what's given into a `dimdata` under the hood.  Users will only be able to specify "regular" block and cyclic disttypes with this method.