API rejects spell cast if not enough mana

Fix #3493 “API does not validate if user has enough mana”

There were a couple different places this validation could be done, but I thought doing it in the API itself was best so that it could return a human-readable error.

(As a sidenote, it likely makes sense to eventually create a canCast method to cut down on the number of places in the code that the mana is checked. Plus, it would open up the possibility of allowing buffs/items that give a mana cost discount.)