BUG: interpolate should preserve dtypes
Closes #6290

Replaces PR https://github.com/pydata/pandas/pull/6291 due to github / git issues.

@jreback I think opening a new PR will be easier. I'm was having trouble getting that branch and the PR in #6291 to sync up.

I noticed that you got the missing comma in the join_merge vbench added so I've removed that commit.

pefect thanks!
 minor FYI, always use fully dtypes for comparions...`int` will fail on a 32-bit platform....

As pandas will ALWAYS coerce any input data to int64/float64 (except if its specifically dtyped);
the problem is that on a 32-bit platform is that _numpy_ defaults to int so even something as simple as
`np.arange(5)` will become `int32` on a 32-bit platform

https://github.com/pydata/pandas/commit/173c6860ab653b4be0b4bad4cda122ae5b101ab3
