Series.diff incorrect values with uint64
Series.diff appears to get things off with unsigned ints 

``` python
s=pd.Series([1, 2, 3, 4, 5, 6], dtype='uint')  
print s
print s.shift(-1)
print s.diff(-1)  # this result is wrong, some conversion issues
print s.map(int)
print s.map(int).diff(-1) # this result is right

0    1
1    2
2    3
3    4
4    5
5    6
dtype: uint64
0     2
1     3
2     4
3     5
4     6
5   NaN
dtype: float64
0    1.844674e+19
1    1.844674e+19
2    1.844674e+19
3    1.844674e+19
4    1.844674e+19
5             NaN
dtype: float64
0    1
1    2
2    3
3    4
4    5
5    6
dtype: int64
0    -1
1    -1
2    -1
3    -1
4    -1
5   NaN
dtype: float64


```

(this appears to have worked correctly in an older version of pandas 0.8 and doesn't in most recent 0.12)
