Screenshots are recorded on browser failures

- Results will end up in `log/failed_browser_tests.html`
- Tracebacks and screenshots are stored inline
- All styling is loaded from internet CDNs, so the page won't work
  well without an internet connection
- Modified the logged_in fixture to use browser to ensure it's
  recognized as a browser test
- Now using 'atexit' to REALLY make sure the browser is closed
  when python exits.
- Now ignoring everything in log/, just just *.log