Added sprite mixins

Sprites can now share common functionality by inheriting from mixins.

Also changed the get_type() method to a 'type' attribute, and added a
'types' containing subclasses, so we can use these for filtering.