Created a class MathObjectEmpty to represent empty children

Signed-off-by: Mark Kamsma <mark@markkamsma.nl>
The drag state is now set correctly to all children of the MathObject that's being dragged
Also a deep copy of the MathObject is now created for dragging

Signed-off-by: Mark Kamsma <mark@markkamsma.nl>
Implemented the drag-and-drop system

Signed-off-by: Mark Kamsma <mark@markkamsma.nl>