Large reactor of bubble system to remove Class.js

All class inheritance now uses vanilla javascript prototypes with
Object.create. Some classes are self instantiating, and those are the
ones that I expect there will only ever be one instance of. For now, I
have left player and camera as instantiated members, because perhaps
there could be more than one player or camera. I am making assumptions,
like there will only be on World, and one Game.

This also modifies how the cache system works, now we store an array
that has { type: Class } and does a instanceof check to look up members.

That was the original reason for the refactor