Add "unclosed file detection" to the testing framework.

Fix unclosed file bug in logger.py
Fix unclosed file bug in wcs.
Fix unclosed file bug in io.ascii.
Add open_file_detection_test
Update to alternate implementation that uses lsof
Check that we can successfully run lsof
Python 3 fixes
Fix for Python 3.x (to do bungled rebase)
Fix for Python 3 -- use a slice rather than a single element to keep things as byte strings
added quantity-like addition. changed units to unit. removed copy kwarg.
Modified during cherry-pick to match changes in master

Conflicts:

	astropy/nddata/nddata.py
Removed __add__, as arithmetic not to be included in this PR
Fixed a few left over plural "units"
Removed a left-over `copy`, an unneeded import, and some PEP8 fixes
Adjusted behavior for masked arrays when `mask` argument is provided, based in part on @astrofrog's comments
test commit to see if travis is working
Removed a reference to NDData copy argument
Fixed NDData to actually copy by reference
Fix tests to reflect new copy behavior
added masked array tests to nddata
updated NDData tests to use NumpyRNGContext
Adjust NDData tests to use assert_array_equal
Merge pull request #678 from eteq/nddata/nddata_arithmetic-2

Miscellaneous tweaks/fixes for NDData
Merge pull request #673 from mdboom/testing/open-files-lsof

Adds "unclosed file detection" to the test framework using lsof