Fix issue with custom nodes, updated geometry message parsing logic.

Thanks @pbidenko!

A few things are amiss here.  First, I don't actually know what problem this is fixing, because you haven't stated it in the pull request.  In the future, I'd like you to attach the name of the youtrack issue (if applicable) and clearly state the problem in the pull request.  If there's no YT issue then the PR definitely needs to be clear.

Second, I'd like you to consider the case where Dynamo supports multiple "home" workspaces (called Project Workspaces in Flood).  Although this isn't possible today, flood will need to be ready for that.  

This solution looks like a stop-gap based on the assumption that there is only one home workspace.  The current means of receiving geometry data is also dangerous in that you may have multiple home Workspace objects hanging around if you close the current one.  This could create a nasty memory leak (especially if you're doing the very expensive copy you suggest below).

Instead, events caused by communication with the Runner should be dispatched from the app to the appropriate workspace based on some sort of unique identifier for the workspace. This is similar to the way newly computed values are dispatched to Nodes.  

I think we should likely close this PR and get to the core of the problem...