Improved sessions, bug fixes and headless testing of examples

This started as a simple improvement to replace `session.add(very, many, items)` with something shorter, currently `session.add(plot, recursive=True)`. To test that examples work I added `examples/test` script that uses PhantomJS to render HTML files and collect any errors. The implementation is a little naive and slow (fixed timeout) at this point and there are many caveats. I will document how to use this next week. The script saves rendered pages to `*.png` files along `*.html` files, so you can issues, e.g., `eog examples/glyphs` to visually inspect plots.

~~This PR is WIP~~, because not everything is well tested yet and there might be some changes needing discussion or better implementation (e.g. I don't like `BOKEH_BROWSER` from c63854c, but it was the simplest thing (in my view) to do to proceed with testing).