User variables implementation

Implementation for #219 

- [ ] Template parsing should understand variables
- [ ] Builds should have variables
- [ ] Builds should be able to set variables
- [ ] Builds should pass variables into all `Prepare` methods
- [ ] Common should provide a way to extract this out of config and set it on a Template
- [ ] Migrate everything over to the system.
- [ ] Ability to specify variables on the command line
- [ ] Ability to specify variables in a JSON file