Continue of the rewrite

- Each submission is an object now, we just pass it around!
- Switch from os.system and os.popen to subprocess.call
- Compile error is saved now.
- run.py is half complete
Significant changes to run.py and compile.sh
Continue of the rewrite; part III: options, config, and log

options.py:
added some help for arguments
added much more arguments and more config based on them

log.py:
moved everything related to log file descriptors here

config.py:
now is more flexible