Refactor interaction between workflows JS and editor JS for adding nodes.

Add abstraction into editor for use by galaxy.workflow.js to hide some editor details from workflow code and reduce duplication between add_node_for_tool and add_node_for_module.
Outline workflow editor tests.
Simplify enable_output_terminal and enable_output_terminal in workflow editor.

These functions were taking in a single element and then looping through it. I hope this is not some intententional jQuery pattern to change the value of 'this' I don't quite understand and is just a remnant of when some loop over inputs was on the inside of this function or some other such refactoring.
Workflow editor backbonification - add NodeView.

Including unit tests.
Workflow editor backbonification - add DataInputView.
Workflow editor backbonification - add view for output callout.
Workflow editor backbonification - add view for output data view.
Workflow editor backbonification - add InputTerminalView.

Add unit tests for new view.
Workflow editor backbonification - add OutputTerminalView.

Add unit tests for OutputTerminalView.
Convert InputTerminalView to use backbone style event binding.
Convert OutputTerminalView to use backbone style event binding.