PERF: uses bincount instead of hash table in categorical value counts
closes https://github.com/pydata/pandas/issues/10804

``` ipython
In [1]: np.random.seed(2718281)

In [2]: n = 500000

In [3]: u = int(0.1*n)

In [4]: arr = ["s%04d" % i for i in np.random.randint(0, u, size=n)]

In [5]: ts = pd.Series(arr).astype('category')

In [6]: %timeit ts.value_counts()
10 loops, best of 3: 82.7 ms per loop
```

on branch:

``` ipython
In [6]: %timeit ts.value_counts()
10 loops, best of 3: 31.3 ms per loop
```
