WIP: avoid internals for Series.interpolate
This may be premature while discussion about removing the block manager is ongoing

most of the diff is type annotations and collecting the method validation. will break off into pre-cursor PRs
The more I investigate this, I _think_ may to be able to avoid internals for DataFrame.interpolate too since interpolates per column within each block (using np.apply_along_axis). We should be able therefore to operate columnwise instead and can keep the shared code in NDFrame.

closing for now to clear queue.