Use cellvars instead of varnames.

Basically, the difference:

  1. The code is now easier to compile, as it does not require replacing _FAST instructions with _DEREF ones.
  2. If Python is compiled without computed gotos, variable access may be a little bit slower due to instruction overhead. (*_DEREF only require one more dereferencing than *_FAST, but *_DEREF opcodes end in DISPATCH() while *_FAST opcodes end in FAST_DISPATCH(), which skips some stuff.)
  3. CPython has a slightly faster method for calling global functions and methods that only have positional arguments with no default values and don't use non-local variables/create closures. While many functions don't fit under this description, calling the ones that do may be slower. (Up to 2x slower if your function is useless^W simple enough, which means `x -> x`.)
Merge branch 'master' into no-varnames
Merge branch 'no-varnames'