Split up the loading of cupcakes so it only happens when a new sprite is
needed. Made several refactors to accomodate the changes and clean up
the code.