Add and EMIEngine subclass and support for push and pop on emi text objects.

This was suggested when I made a pull request for pushing and popping text objects. The EMIEngine subclass can be used to store any global state needed for EMI. Should the emi.{cpp|h} files be in the emi folder?

The pushing and popping text objects makes the EMI menu actually usable.

For the createInstance detection, I looked at the scumm engine in ScummVM and it does something similar, although way more complicated.

I added g_emi so as to not have to cast every time specific emi features are needed. Not sure what else will need to be added though.