Custom elements overhaul

Overhauls the entire custom elements system, converting the save system to Google's Protobuf system on the way.

Major changes:
* State save and custom element save systems use Protobuf now (for robustness and upgradability)
* Custom elements UI switched to holo theme, added some descriptions to improve usability
* Changes state saves to store custom elements by filename instead of hash (for upgradability)

Todo for release:
* Clean up advanced tab of custom elements
* Fix UI weirdness on unmovable checklist
* Write scripts for upgrading .sav -> .sav2 and .ele -> .ele2
what is this array? it should have a comment