Boost performance of List#car, #cdr, #cadr, #cdar, etc etc

In a little micro-benchmark I tried, this gave a 9x performance boost to `#caddr`. `#car`, `#cdr`, `#cadr`, `#cdar` (and so on) should all show similar speed-ups.

I'm opening a PR so others can comment on code style before the changes are merged in.
To clarify, when you define a method with `define_method`, every call to that method has to go through some extra code which invokes the saved block. When you define a method by `eval`ing a string, the resulting method is *exactly* the same as if you had written it out "longhand" in the source code.

The overhead of a method call is small enough that you have to run many iterations for the effect to show itself clearly in a benchmark. But having done so, it appears like the overhead of a call is about 25% less using `eval`ed code.

The other thing is without using `eval`, I don't see any way to get away from the overhead of iterating over the matched characters on every call.