qcut() should make sure the bins bounderies are unique before passing them to _bins_to_cuts
xref #8309

for example:

``` python
pd.qcut([1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5], [0.00001, 0.5])
```

will raise "ValueError: Bin edges must be unique: array([ 1.,  1.])" exception

Fix suggestion - add one new line:

``` python
def qcut(x, q, labels=None, retbins=False, precision=3):
    if com.is_integer(q):
        quantiles = np.linspace(0, 1, q + 1)
    else:
        quantiles = q
    bins = algos.quantile(x, quantiles)
--->bins = np.unique(bins)
    return _bins_to_cuts(x, bins, labels=labels, retbins=retbins,
        precision=precision, include_lowest=True)
```
