Add `sanitize_indices` function.
Add `slice_intersection` utility function.
Add tests for slice intersection and sanitization.
Trim whitespace in utils.py.
First try at refactoring maps.py with an interface.
Don't test the base class- it's abstract now.
Move `isonlyone` to `utils`.
Remove unnecessary `flatten` function.
Move `all_equal` to `utils` and generalize it.
Rename `isonlyone` to `has_exactly_one` and test it.
Fix a couple of refactoring-related bugs in odin.
Reinstate `test_local_sum`.
Remove commented-out test-code from `maps`.
Spell out the names for `uops` and `bops`.
Fix some missed renames.
Make the `fromdap` function into a classmethod...

on `LocalArray` named `from_distarray`, and add another classmethod `from_dap` that takes `dimdata` and optionally `buf` separately.  This is so we can start using `from_dap` more generally in creating `LocalArrays`.
Rearrange some methods, rewrap some lines.
Remove explicit exports (`__all__`s).

In almost all cases, we were exporting everything from every module.  I think we should take the opposite approach to exports and instead prefix names that we *don't* wish to export with an underscore.  Look at all the removed code!
Merge branch 'odin' into feature/refactor-utils-maps-and-exports

Conflicts:
	distarray/core/denselocalarray.py