Implementing threaded executing

accepting multiple model files at once
--threads option specifies the number of threads.
Bugfix: spawning shell to control cwd subprocs

Maturing cli.execute
Add id attribute to Model
Model.from_string now raises SyntaxError when the file doesn't end in
.mdl
Made it so that only cli scripts print to stdout.
Generally, if an error occurs, something gets printed to stderr.
Thread exception handling

cwd option for subprocess.Popen actually does work.
Merge remote-tracking branch 'origin/dev'