ArrayDist storing distribution info for darrays. Deprecated d* functions...

This PR does the following:

- Added `ArrayDist` which is an abstract type. Subtypes are `SharedDist` and `ChunkedDist`. Both store the array dimensions and list of processes participating in the distribution.
- `ChunkedDist` also stores the chunked indexes for the `DArray` 
- d* functions have been deprecated in favor of the regular convenience constructors accepting a ChunkedDist

Will update documentation if the above is OK. 

Updates to SharedArray using a SharedDist will be made in a separate PR.