GameAssets Encapsulation

All the Entity lists in GameAssets are now private and can only be
accessed through GameAssets accessors. This allows us to wrap up the
thread safety stuff.