Update QP controller

Actually, I don't like having controller data at the top---it seems rather application-specific when it shouldn't be. I'm going to go with your original suggestion and make SharedDataHandle the parent and make ControllerData a non-abstract class with an abstract verify method that is called in the constructor.