core.common.random_state is too strict for state input
The numpy RandomState seed can be an int, array-like, or BitGenerator

```python
seed : {None, int, array_like, BitGenerator}, optional
    Random seed used to initialize the pseudo-random number generator or
    an instantized BitGenerator.  If an integer or array, used as a seed for
    the MT19937 BitGenerator. Values can be any integer between 0 and
    2**32 - 1 inclusive, an array (or other sequence) of such integers,
    or ``None`` (the default).  If `seed` is ``None``, then the `MT19937`
    BitGenerator is initialized by reading data from ``/dev/urandom``
    (or the Windows analogue) if available or seed from the clock
    otherwise.
```

Right now, we only pass through integers. Arrays (and BitGenerators if possible) should be passed through to RandomState at https://github.com/pandas-dev/pandas/blob/54c5e9e6e0819f848a10045d1cbc8ee936ffd075/pandas/core/common.py#L409-L410. 

## Current Behavior

```pytb
In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: state_data = np.random.randint(0, 2**31, size=624, dtype='uint32')

In [4]: pd.core.common.random_state(state_data)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-4f97e41a5899> in <module>
----> 1 pd.core.common.random_state(state_data)

~/sandbox/pandas/pandas/core/common.py in random_state(state)
    415     else:
    416         raise ValueError(
--> 417             "random_state must be an integer, a numpy RandomState, or None"
    418         )
    419

ValueError: random_state must be an integer, a numpy RandomState, or None
```

## Expected Output

```python
Out[4]: RandomState(MT19937) at 0x115B16050
```