BUG: Make interp return NaN at NaN interpolation points.

A NaN interpolation point was interpreted as out of bounds on the left
side, hence the value of the left parameter in the function call was
returned.

>>> np.interp(np.nan, [-10, 10], [-2, 2])
-2.0

NaN is a better choice.

Closes #605.
MAINT: #2312, Make all tofile failures raise IOError.

Fix two that were raising ValueError instead.
Make some style cleanups.

Closes #2312.
DOC: Document tofile exception changes in 1.9.0 release notes.
Merge pull request #4302 from charris/fix-gh-605

BUG: Make interp return NaN at NaN interpolation points.
Merge pull request #4333 from charris/fix-gh-2312

Fix gh 2312