Change list comprehensions to generators.
Add option to supress output.

Add the -q flag to supress output by redirecting sys.stdout. Also add a method
to Engine which performs correct action for flags which require it.
Use dict.get() instead of accessing directly.

Stops KeyErrors being thrown if the program is not used from the command line.
More testing.
Made quiet flag a global option.
Add verbose option.
Replace nested for loops.

Replace nested for loops with generator comprehensions.
Add option to work on directories.
Rename does not work on directories by default.