[z1812] Restore spellmod charges used by fail spell cast

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also

 * Prevent more one charge use for same spell cast
 * Cleanup enum SpellState from unused cases
 * Propertly remove spellmod charges at spell finish in case pet/totem caster

(based on commit af7ef76)

(based on commit [s1370] - c2c4c68)