Fixes #263 by ensuring the input/output names used by CodeNode are valid.
rewrite non-alphanumeric letters as "_" underscore
removes duplicate inputs/outputs which caused errors
removes empty inputs/outputs from list
Note, item 1 could be a breaking change for anyone using input names like "bad$xamp!es" as it gets rewritten to "bad_xamp_es". I made this change without discussing, but can be reverted if needed.
Fixes #263 by ensuring the input/output names used by
CodeNode
are valid.