PERF: nunique perf improved by using len(unique) rather than value_counts
Before:

```
In [1]: s=pandas.Series(range(100)*1000)
In [2]: %timeit s.nunique()
1000 loops, best of 3: 1.43 ms per loop
```

After:

```
In [1]: s=pandas.Series(range(100)*1000)
In [4]: %timeit s.nunique()
1000 loops, best of 3: 440 µs per loop
```

Can you also time this for an example with NaNs ?
 It would be nice to also formalize this timing with a new vbench.
 Here are the examples with NaNs:

```
In [8]: import pandas

In [9]: s=pandas.Series(range(100)*1000)

In [10]: dropna=True

In [11]: %timeit len(s.value_counts(dropna=dropna))
1000 loops, best of 3: 1.6 ms per loop

In [12]: %timeit s.nunique(dropna)
1000 loops, best of 3: 450 µs per loop

In [13]: dropna=False

In [14]: %timeit len(s.value_counts(dropna=dropna))
1000 loops, best of 3: 1.61 ms per loop

In [15]: %timeit s.nunique(dropna)
1000 loops, best of 3: 441 µs per loop

In [16]: s=pandas.Series((range(100)+[None])*1000)

In [17]: dropna=True

In [18]: %timeit len(s.value_counts(dropna=dropna))
100 loops, best of 3: 8.61 ms per loop

In [19]: %timeit s.nunique(dropna)
1000 loops, best of 3: 1.22 ms per loop

In [20]: dropna=False

In [21]: %timeit len(s.value_counts(dropna=dropna))
100 loops, best of 3: 9.24 ms per loop

In [22]: %timeit s.nunique(dropna)
1000 loops, best of 3: 1.2 ms per loop
```
 Could you give me an example for the vbench? Should it be in the pandas project or in the vbench project?
 I did not rebase with the last version of master. And this had been done in ff124f9efec602ad6de552a0ba41428d69615612
I close it
 @gtnx sorry about that I forgot this _was_ fixed (and the issue was orphaned).
