Updates for asv suite
@jorisvandenbossche As you requested in #10849, here's the current state of affairs. The changes are:
- First patch:
  - Fix the translation script so that functions defined in the vbench `setup` string get defined as classmethods and called appropriately. This fixes most failing tests.
  - Some backwards-compatibility fixes around imports. Raising `NotImplementedError` inside `setup()` is equivalent to `SkipTest`, so I've tried to do that in a couple necessary cases (such as things using `test_parallel`)
  - Speaking of `test_parallel`, this required a bit of hackery to support not-existing. I implemented a no-op decorator by that name so that the actual definition of test cases wouldn't fail. We simply raise `NotImplementedError` rather than test without it, however.
- Second patch:
  - Support Python 3, the changes are essentially what I mentioned elsewhere.
  - `from pandas_vb_common import *` -> `from .pandas_vb_common import *`
  - Replace `xrange` with `range` and add `from pandas.compat import range` in `pandas_vb_common`
  - Replace `string.uppercase` with `string.ascii_uppercase`
- Third patch
  - `asv` instructions in `contributing.rst`, largely lifted from the vbench description. The current examples are minimalist, but most comparable to what vbench outputs.
- Fourth patch:
  - Re-run the translation script. I think some other additions may be included in the first patch due to having run it a few times while making changes.

cc @jreback @TomAugspurger 
