[WIP] Rewrite driver code, move to driver.py, introduce system builder classes

Hey,

This is my (very initial) implementation of `SystemBuilder`.... very WIP, will continue to implement the ideas we discussed.

Thanks
Again, we can factor out the `return` statement to avoid repetition.