Remove need for AOT shim

This pulls in a number of the changes hiredman made on his branch without deleting functions.

I don't think this is quite ready to merge, but wanted some feedback.

How should `compile-servlet` and `compile-listener` be guarded from running, if at all?