[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
Probably want to raise a more specific error, perhaps

```
raise ValueError("Cannot set trajectory with incompatible topology.")
```