make gevent optional - websockets wont' work, but that's mostly ok
Use single _inline_files() instead of _inline_{scripts, css}()
Don't save in view() and add try ... except
Replace explicit webbrowser.open() with session.view()
Generate deployment bokeh.css and bokeh.min.css
Set requirejs log-level to warning
Use bokeh.css instead of {main,continuum,bootstrap}.css
Make session.add() traverse object tree (recursive=True)
Unify server error handling in examples/glyphs
Descend through HasProps to get all dependencies in order
Don't use bytes and decode() with _inline_files()
Merge branch 'master' into session-improvements

Conflicts:
	bokehjs/demo/candlestick.html
	bokehjs/demo/gmap.html
	bokehjs/demo/grid_plot.html
	bokehjs/demo/grouped_bars.html
	bokehjs/demo/image.html
	bokehjs/demo/lorenz.html
	bokehjs/demo/map_label.html
	bokehjs/demo/map_overlay.html
	bokehjs/demo/stacked_bars.html
	bokehjs/demo/vector.html
	examples/glyphs/colorspec.py
	examples/glyphs/dateaxis.py
	examples/glyphs/glyph1.py
	examples/glyphs/glyph2.py
	examples/glyphs/grid.py
	examples/glyphs/iris.py
	examples/glyphs/line.py
	examples/glyphs/line2.py
	examples/glyphs/line_animate.py
	examples/glyphs/maps.py
	examples/glyphs/prim.py
Use 3-arg type() to construct PlotObjectEncoder
Remove duplicated code from NotebookSessionMixin.dumps()
Move duplicated code to convert_models() in bokeh/session.py
Don't modify session state in get_ref()
Use Session.make_id() instead of str(uuid.uuid4())
Remove duplicated div = self._load_template(...)
Be explicit about HTMLFileSession.dumps() arguments
Add support for 'absolute' js and css files in HTMLFileSession.dumps()