Dev evalknieval node

Time for a review, a successful pull request is not necessarily expected.

let's try this. It's modularized to a large extent and documented in the docstrings. I'd love more feedback from Ko, he seems to really get a kick out of this kind of node.

Hitting Enter on the eval string will set the socket location to incoming or outgoing. At this point the node doesn't really know what kind of data is expected. The node then automatically morphs its own socket to conform to the socket type being connected to it.

If anything this is pure experimentation. I'm already using it quite happily.