EMI: Don't load a costume if a "nil" chore is set

Don't call findCostume for "nil" chores to avoid loading the costume
indirectly via findCostume even if it is not needed.
EMI: Unload the active costume once a different is set

- the costumes are handled on a stack per Actor
- the last costume is considered the current one
- currently, the costumes are never removed from from the stack
- this causes an issue when Guybrush is using its original
  costume first, later the monkey robot costume for the final Monkey Kombat
  and then again the standard costume (the robot costume will remain the last
  on the stack and cosidered the current one - this causes a problem
  when attaching the head actor since the robot has different joints
  than guybrush with the standard costume)
- if a new wear chore is set and it uses a different costume than the
  current one and neither of them is the shadow costume remove the old
  costume before setting the new one
- additionally, this patch makes sure, that all active chores of all
  costumes on the stack of an actor are stopped
EMI: Minor refactoring for setting chores and costumes

Refactor some repeated code blocks into a single function.
Merge pull request #805 from chkr-private/costume-fixes

EMI: costume fixes