Fix diag and its code style.

This commit fixes `diag` to correctly call `_diag_mapper` instead of
`diag_mapper.` Diag no longer raises a NameError on `diag_mapper.`

This also ensures two blank lines precede _diag_mapper and diag and
updates the docstrings to the new style.
Add dimension check for diagonal

In diagonal, ensure the array has at least two dimensions and raise
ValueError if not (following NumPy's conventions). Update return type
in docstring to be ShuffleExpr (what it's always returned).
Merge pull request #167 from rgardner/fix-diag

Fix diag and diagonal.
Merge pull request #170 from fegin/master

distarray.__len__ should only return shape[0]
Try to fix knn test.
Add travis status to README
Merge pull request #171 from EasonLiao/master

Try to fix forest test.
Add refcnt to Tile and increase it when an expr reuse it. (like
regional_map). Before destroying tiles, the worker has to decrease
and check refcnt.
Dummy commit
Merge remote-tracking branch 'upstream/master'
Previous commit takes wrong tile_id(s) from the results.
'tile_id' in the results could be None. We need to check it.