interpolate() crashes with limit argument
Hi,

Pandas' `interpolate()` method crashes if the `limit` parameter is passed and the underlying data frame or series does not contain NaN values, i.e., if there is nothing to interpolate. I think this is a bug.
The following code was tested with Pandas 0.14.1 (NumPy 1.9.0):

```
import pandas as pd
import numpy as np

x = pd.Series(np.arange(4))
x[2] = np.nan
# x looks like this:
#0    0
#1    1
#2    NaN
#3    3

xx = x.interpolate(method='linear', limit=1)

# calling interpolate() a second time...
xx.interpolate(method='linear', limit=1)

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
[...]
/.../python2.7/site-packages/pandas/core/common.pyc in _interp_limit(invalid, limit)
   1437         violate = [invalid[x:x + limit + 1] for x in all_nans]
   1438         violate = np.array([x.all() & (x.size > limit) for x in violate])
-> 1439         return all_nans[violate] + limit
   1440 
   1441     xvalues = getattr(xvalues, 'values', xvalues)

IndexError: arrays used as indices must be of integer (or boolean) type
```

It seems that – since `all_nans` is empty – the dtype of `violate` is set to float (NumPy default). And float arrays cannot be used for indexing. It's probably safe to replace line `1438` with the following:

```
violate = np.array([x.all() & (x.size > limit) for x in violate], dtype=np.int)
```
