Allows sending just required data on notebook update
I've made some comments above but I'm afraid I don't know enough details to do a very thorough review. I do have one general comment though...
The changes here seem to be of two types: 1. actual changes in the bokeh API to smooth over with conditional statements 2. improvements to how the code works that is compatible across both bokeh versions (i.e understanding how to leverage bokeh better).
The second type of change seems general and I assume fairly stable. The first type of change is a lot of special cases and I worry that as bokeh keeps developing (and the API keeps getting tweaked) that the list of these fixes will keep growing. I'm not sure it is needed now but I might consider a class in util or even a file