ObjectCache & Improved MathHelper Performance

Added ObjectCache class and improved MathHelper performance using the new ObjectCache.

Instead of creating and filling a lookup table with pre-calculated sine values, we instead calculate the sine values on-the-fly and store them in a lookup table automatically. This initially uses less memory and increases boot speed while still maintaining a good overall speed.

The ObjectCache utility class can be re-used as well.
Oh god this is slow.