Change behaviour of `masked`=None` for read()
 - If `out` is supplied, the use of a mask respects this array type
 - Otherwise, masked is determined if any of the nodatavals are not None
 - Dimensions of `out` (if used) are checked, and raise ValueError if
   not expected (this didn't work previously)
 - Reflect above changes in test_read.py
 - Complete function documentation for `read()` in code (but not elsewhere)
Merge pull request #94 from mwtoews/master

Change behaviour of `masked=None` for read()