WIP: SOC/Lua freeslot parser fixes
This branch adds fixes related to parsing freeslots from SOC and Lua. Most notably, you can no longer create two or more freeslots with the same name; if you attempt to do this (by accident usually), a warning about it will be printed in the console. (Note that in Lua, this does not break hooks unlike typical Lua errors, it just moves on to the next freeslot as expected.)
This is currently WIP because I think there were changes I intended to make before making this MR, though I forget what they were right now.