NodeCollapser fixes, new NodeModel creation methods on NodeFactory, WorkspaceModel

@Steell 
I hope it's okay, but the intention here was not to redesign NodeCollapser, but only make sure it is without defects (it previously was).  @Steell, who owns this code, can redesign at his leisure.