ENH/REF: More options for interpolation and fillna

closes #4434
closes #1892

I've basically just hacked out the Series interpolate and stuffed it under generic under a big `if` statement.  Gonna make that much cleaner.  Moved the interpolation and fillna specific tests in `test_series.py` to `test_generic.py`.

API question for you all.  The interpolation procedures in Scipy take an array of x-values and an array of y-values that form the basis for the interpolation object.  The interpolation object can then be evaluated wherever, but it maps X -> Y; f(x-values) == y-values.  So we have 3 arrays to deal with:

1.  x-values
2.  y-values
3.  new values

Preferences for names?  The other issue is for defaults. Right now I'm thinking

1.  x-values: index if numeric.
2.  y-values: the Series.values if Series. Each numeric column of DataFrame if DataFrame?
3.  new values: Fill NaNs by default. Interpolate at `new values` if an array is given.