Lots of refactoring and additions:
 - Added colors (changed existing output.py)
 - Added console output using Jinja2 (in tests only)
 - Fixed data structures