Use atomic increments for counters
Make debugging of global serial bumping easier

This gives us an option to see where the global serial is increased, to
find for example cases where this causes constant lookup caches to
invalidate.
Create global constants for common encodings

The lookup for these constants is a small improvement, but it was
showing up in profiles as spending significant time in the lookuptable
for these constants.
Fixed error introduced in 4bfc088e4c.
Add metadata for global cache entries
Setup proper type info for Numeric and Integer
Create smarter kind_of checks

If we can reuse the cached constant since it's referred static in the
code, we can create a quick check for the cases that the kind_of type
check succeeds and finds the correct type.

To optimize for VM types, it makes the assumption that inherited classes
from VM types will always use the VM type layout. The only way to hack
around this at the moment is manually changing a class for an object
with Rubinius::Unsafe.set_class. Since that explicitly is an unsafe
operation, this optimization doesn't break normal usage.
Move type checks up front for common cases

These cases are hit often in Rails apps (FFI due to Socket).
Added Erb, Erubis, Haml benchmarks
Added simple rack benchmark
Added simple Sinatra benchmark
new blog post: how to use rbx 2.0 on heroku (and puma 2.0 for good measure)