Added a simple cache system.
If the object has `cacheAsBitmap` as true, it will first be drawn to
a framebuffer and then passed to the spritebatch to be rendered. It's a
pretty simple one, there can be more improvements to be done.