Make SpriteBatch extendable.

Allow developers to change only a few methods or add methods to
SpriteBatch and the new class still be useable library-wide.