Ensures all distarray objects removed from engines.

Uses `atexit.register()` rather than __del__
More refactorings for context cleanup stuff.
Merge branch 'master' into bugfix/cleanup-keys

Conflicts:
	utils/purge_cluster.py
Refactors dacluster.clear() function, removes an `execute` call.
Remove dead code.
Fix imports and dict.values() bug in Py3.
Remove global world context.
Merge pull request #317 from enthought/bugfix/cleanup-keys

Engine namespace cleanup
Updates version to 0.3-dev.

Helps indicate that we're now working on 0.3 pre-release.
Merge pull request #324 from enthought/update-version-to-0.3-dev

Updates version to 0.3-dev.
Merge pull request #323 from cowlicks/rm-world

Remove global world context.
Resolves regression with "OSError: too many open files."

Changes Context creation to require explicit Client to be passed in.
Restore previous Context.__init__ API w/ default client.
Forgot to cleanup `test_maps.py`
Merge pull request #325 from enthought/bugfix/cleanup-regression

Fixes "Too many files open" regression on OS X
ClientMDMap -> Distribution
ClientMapBase -> MapBase
ClientNoDistMap -> NoDistMap
ClientBlockMap -> BlockMap
ClientBlockCyclicMap -> BlockCyclicMap