Some small performance optimizations

method(:x).call => send(:x)
Don't instantiate strings for logging when we don't need to.
Do recursion with real methods instead of procs, since its faster and avoids creating procs
Instantiate less memorypointers
Use eval for defining information methods because calling such methods is faster than those created via define_method. See http://www.matijs.net/blog/2011/04/22/benchmarking-dynamic-method-creation-in-ruby.
Fix compilation error in cherry-pick of df0029584.
Revert part of commit df0029584. It was a micro-optimization that had one method allocating local variables for another.
Fix documentation error for postredir option.
Merge pull request #48 from koppenheim/master

Handful of performance optimizations