REFACTOR: A2S compiler is now a temporary object

The compiler is now a temporary object that is created as needed.
There is no longer a "static" shared instance owned by the shared
state, because that causes problems with recursive compiling, such
as when processing import directives.
Fixed crash when destroying xinsert clients early

It's now safe to remove xinsert clients before they've been
installed on the engine side. This is a situation that can
occur if an application aborts right after installing xinsert
clients, and before, that would result in a segfault.