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.

That is, not for merge, only interim comment.