This object represent an in-game spell. Each instance represents a single spell that will be encapsulated inside some SpellUser.
The spells the user have.
Gives a new spell to the user
Calls the ExecuteCommand(Spell.SpellCommand.Cast) of the n spells index
Returns false if any spell that cannot be used with other spell are in Preparing state.