ENH add base arg to value_counts
Often I find myself wanting to throw away values which aren't in a given set when doing `value_counts`...

This basically just does this but inside value_counts (before possibly sorting):

```
pd.value_counts(x).reindex(base, fill_value=0)  # same as Series method
```

_I previously thought this was trickier to implement, so feel a bit stupid, but anyway could be useful....?_

I. theory this could be done in value_counts itself (the actual cython code) and would make it faster 
 Agreed. Will check it out. (Also, random build error)
 FYI started to change `lib.isimember` at the same time to use hashtables rather than set, I think perf is 10x better.
 ahh sexy 
 nice on perf with `lib.ismember` - sounds good :). I'd leave the check for this with the result. I don't think the perf difference will be that great and it'll leave the value_counts method less complicated. [the reindex would cause a memory copy and you'd be trading counting a few less items for potentially having to do a lookup for every single item (and/or checking for the existence of base every iteration)]
 So IIRC (I need to look back at this next week / when I have some time) this was pretty trivial/clean to change in the cython code (there's already a method to lookup an array in a hashtables).
 ping!
 ping
 let's move to 0.15
 nice idea but stale
 I killed the last wip (performance) commit, I still think base arg could be a good idea.

I've rebased - let's see if it still passes...
 dang it, apparently you can't force push to a closed PR (you have to reopen first). Submitting new PR.
