Currently, if a Contributor is demoted to Investor while they have vaulted tokens (InternalMarket), the user can withdraw the tokens bypassing the InternalMarket logic, hence creating an inconsistent state.
This means that in case they become Contributor again, they will have already unlocked tokens, although they shouldn't.
Options:
- prevent the demotion in case a user has vaulted tokens
- force withdraw the tokens during demotion, to bring the InternalMarket into a consistent state
- mark this as a feature (in case we think the user having the tokens already marked as "free" once rejoined as a contirbutr is what we want)