enter/exit events for trampoline (useful for profiling)

This pull request adds 'enter' and 'exit' events every time a piece of Streamlined code is entered and exited (including separate events for each trampoline). We are currently using this to profile CPU time in Streamlined functions. This allows us to determine how much actual CPU time is spent in a Streamlined function, even if it is being trampolined with other functions.
Note that this is a 'callbacks' only implementation. I was a little leery of applying this change to fibers and generators since we don't use them internally.
I haven't had the time to put our simplistic profiler into its own GitHub project, but I should have that available in the near future.