CORE: Add Support for Restricting Spells By Expansion

Adds support for restricting spells by expansion, where required_expansion = XXX, where XXX refers to ENABLE_XXX in settings.lua

I tried to implement this in a way where you could freely toggle expansions on and off while either playing or testing various things without data loss to the character's spell list just because some spells may be temporarily disabled.

So, what I did is provide a filtered array to the CharEntity that is a list of enabled spells. This is calculated when the character is loaded up, and then filtered against the loaded spell list, which is filtered by expansion.

When you learn new spells, it is added to both of the arrays. The full array is what gets saved back to the db, but the filtered one is what is send in the spell packet.

I used Gekka & Yain Ichi as examples. With the change i was able to ENABLE_SOA = 1, learn Gekka: Ichi & Yain: Ichi, restart with ENABLE_SOA = 0, and see that the spells were gone. At that point, if I added a scroll of Gekka Ichi to my inventory and tried to learn it, it told me I didn't meet the requirements. I then restarted with ENABLE_SOA = 1 again and the spells were back an working

I will do a pass tagging spells and such to their appropriate era after we get the core changes in to avoid potential merge conflicts while I gather that data.
CORE: Add Support for Restricting Abilities By Expansion

Similar to Traits/Spells, add column required_expansion, where the value if XXX, referring to ENABLE_XXX in settings.lua

Proof of concepts: Tag Mikage & Stymie to SOA, since they were introduced post-SOA. Work on a more thorough pass after I get the core support in to avoid merge conflicts.

Tests: NIN99/RDM99 - ENABLE_SOA = 1, has Mikage/Stymie, reboot with ENABLE_SOA = 0, does not have Mikage/Stymie
CORE: Filter Disable Spells out of Mob Spell Lists

If a spell has been disabled because the corresponding expansion was disable, don't add it to the mob spell list
CORE: Add Support for Restricting Blue Spells By Expansion

-Link to required_expansion in spells_list to not duplicate maintaining this
-Add handling so that if a spell gets disabled while its set, its removed from the set spells list as well as the list of spells

I do not have any blue spells disabled on the committed yet, but I temporarily added some locally for testing, and I was able to verify that the handling when a spell is disabled while its set works.
Merge pull request #566 from starlightknight/restrict-by-expansion

CORE: Add Support to Restrict Spells/Abilities By Expansion