Rewrite a bunch of stuff and move files around
- everything is now treated as an optional parameter
- can specify a "TemplateItem" if you want to base your custom item off another one
- fixed Newtonsoft.Json not handling serialization of vectors and colors