promote the method on blocks as well
Evaluation._number_of_arguments is immutable
put the Block classes into an array

the computation of the key and the global lookup was reaaaaally
expensive
make reading of signature and constants elidable

this is not a fully transparent annotation, as it means that if the user
changes the method it has no effect on already compiled code. This can
be fixed properly, once the object model is made less funny.
reduce the use of has_global

it always lead to two dict lookups instead of one
optimize global lookups

version the global dict: make the JIT assume that globals are rarely
changed at runtime and make it produce new machine code when they
change.
add some more immutable fields to universe