core.dtypes.generic --> cython
Implement `ABCFoo` classes in cython.

Small optimization of the `typ in comps` check.  When `comps` is a singleton, this just becomes `typ == comp`.  I considered and decided against trying to take advantage of string interning to make it `typ is comp`.

Naturally asv is refusing to run (current hypothesis is it has something to do with a new directory existing), but in %timeit tests its an across-the-board speedup ~50%.

A new asv file is included in case someone else wants to try running it.
