Moves to separated Node and Edge annotation fields.
Adds printing facilities for edge annotations. This should be done though at the underlying abstract object, and all properties should be treated like annotations.