Numerous updates

- added 'describe' functionality to optimizations
- made stub wrap a 'define' call around code that lacks 'define' calls
- the optimize function has most of the logic of optimize_source
- the optimize call on strategies can now return an entirely new AST
(but this would be a bad idea)
- the comments printed with the optimized file is now more helpful
- the command line now takes a --config option that parses a .yaml
config file