Optimize CPU intensitive Compiler methods

This commit contains some performance optimizations in methods
that showed up as very time consuming in the profiler when running
the rake following rake tests:

benchmark:many_modules:run
benchmark:defined_types4:run
benchmark:defined_types:run

CPU consumption with this patch in place is between 70% - 75% of
what it used to be.

Profiling was performed using stackprof
https://github.com/tmm1/stackprof
Is it the second lookup of @foo[e.target][e.source] that is expensive?  The creation of an [e] array or the additional calls to e.target and e.source that is expensive?

Trying 3. sounds reasonable, but I don't know if an include? is faster, would be interesting to see.

How expensive is something like:
(@into[e.target][e.source] ||= []) |= [e]
compared to
into = @into[e.target][e.source] ||= []
into << e if !into.include?(e)