pivot_annual works only with float values
The following does not work:

```
import pandas as pd
import numpy as np


rng = pd.date_range('1/1/1994', periods=216, freq='M')
data = np.random.randint(100, high=350, size=216)
ts = pd.Series(data, index=rng)


from pandas.tseries.util import pivot_annual

ts_pivot = pivot_annual(ts)

```

Error:

```
ts_pivot = pivot_annual(ts)
------------------------------------------------------------
Traceback (most recent call last):
  File "<ipython console>", line 1, in <module>
  File "C:\Python27\lib\site-packages\pandas\tseries\util.py", line 68, in pivot_annual
    raise Exception('need to upcast')
Exception: need to upcast
```

While the following works:

```
ts_pivot_float = pivot_annual(ts.astype('float32'))
```

Why is this implemented in such way in the source?

I would also call for a more helpful exception than _Exception: need to upcast_.
