first attempt at building states into the object model
initial UI for state-based editing
MgGraphCopying instead of NSCopying, allows useful deep copies