Changed Sprite.create from generic method to overloaded

- Changed Sprite.create from generic method to overloaded method. This
is because I was not able to eliminate a warning with the generic
version (unchecked class cast, despite checking the class before
performing the cast). This seems to be related to generics limitations
(specifically, type erasure). Going forward, Sprite.create() will be
implemented as a set of overloaded methods.
- Added a test for Sprite.create()