Initial commit.
Tuli now only looks for a config.json file, allowing other macros to register as plugins which get handed the base path and a list of found files. The plugin returns the files its not interested in so they can be passed to another plugin.
It will then copy any files left to the destination folder. Plugins have their onGenerate method called with the destination path pass, so they can create files in the appropriate location.
Fracking loads.
Mainly creating a bunch of callback hooks for other classes.