[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
If OpenMM is a requirement for installation, then we should import `app` at the beginning of this file, rather than locally.  

If OpenMM is not a requirement, then it's OK to import here, but I'm pretty sure we probably require OpenMM