All of the new expression parser / static data with functions support as one giant awful commit.  To be split up and cleaned prior to merge.