Fixes #401, adds zoom to physical DAG

Had to do some refactoring here. Now all widgets inherit from DagWidget, which acts as an abstract class that has several implemented methods and several abstract methods that must be implemented by child classes. This took the place of AppDagWidget, which has been removed.