integer overflow in pandas.DataFrame.unstack()
Pandas version 0.9.1

There is an integer overflow problem in pandas.DataFrame.unstack()
When unstack() is called on a relatively large data set (1 million rows) with four-column MultiIndex an exception is raised: "ValueError: negative dimensions are not allowed".
Stack trace is below,

The actual problem is in method pandas.core.reshape._Unstacker._make_sorted_values_labels(self)

line 91:        max_groups = np.prod(sizes)

Each of the sizes fits in int32, but their product doesn't.
So max_groups becomes negative.

```
C:\Python27\lib\site-packages\pandas\core\frame.pyc in unstack(self, level)
   3712         """
   3713         from pandas.core.reshape import unstack
-> 3714         return unstack(self, level)
   3715 
   3716     #----------------------------------------------------------------------

C:\Python27\lib\site-packages\pandas\core\reshape.pyc in unstack(obj, level)
    361     if isinstance(obj, DataFrame):
    362         if isinstance(obj.index, MultiIndex):
--> 363             return _unstack_frame(obj, level)
    364         else:
    365             return obj.T.stack(dropna=False)

C:\Python27\lib\site-packages\pandas\core\reshape.pyc in _unstack_frame(obj, level)
    399     else:
    400         unstacker = _Unstacker(obj.values, obj.index, level=level,
--> 401                                value_columns=obj.columns)
    402         return unstacker.get_result()
    403 

C:\Python27\lib\site-packages\pandas\core\reshape.pyc in __init__(self, values, index, level, value_columns)
     77         self.full_shape = np.prod(lshape[:v] + lshape[v + 1:]), lshape[v]
     78 
---> 79         self._make_sorted_values_labels()
     80         self._make_selectors()
     81 

C:\Python27\lib\site-packages\pandas\core\reshape.pyc in _make_sorted_values_labels(self)
     96             comp_index, ngroups = group_index, max_groups
     97 
---> 98         indexer = lib.groupsort_indexer(comp_index, ngroups)[0]
     99         indexer = _ensure_platform_int(indexer)
    100 

C:\Python27\lib\site-packages\pandas\lib.pyd in pandas.lib.groupsort_indexer (pandas\src\tseries.c:51018)()

ValueError: negative dimensions are not allowed
```
