The create_view function is wonderfully generic, except for this one statement here that assumes that we are running in the IPython notebook, and also assumes that view.$el is meaningful as a DOM element.  Can we abstract out the notebookisms into a separate function that I can override in the cell server as a noop?  And what happens if the view does not have a DOM element in view.$el, like my three.js objects?