replace the NodeList hacky container with a QHash<QUuid, QSharedPointer(Node)>

-closes #1505 
-closes #1513 
-closes #1219