Actors are Serializable, New VM scripting system

Made actors serializable.

Re-wrote the scripting system from scratch. Now, instead of nodes with a
virtual Execute() function, scripts will use a game specific VM. This
makes things like scripts interacting with data and scripts getting
written to file a lot faster. It should also greatly speed up execution.

Redesigned script callbacks on actors to take advantage of the new
system. Actors will keep an index to the scripts they're using rather
than a copy of the script. Furthermore, Actor callback scripts are now
stored in a vector rather than being individual callbacks. This will
make it simpler to add new script callbacks.
Fixed a bug with ObjectPool::Remove(Iterator)

Changed the input param with ObjectPool::Remove(Iterator*) from const
Iterator* to const Iterator&. This makes usage more clean. Sometimes,
references are not bad.