Better handling of observer errors

- Unhandled observer error no longer stops flushReact in mid-flush
- Observer errors are now warnings that include the observer label
- Session is explicitly being closed by Shiny instead of by httpuv

Also:
- session$close() is now public and closes the session
Add test for observer error handling
Remove unused withCallingHandlers()
Add global option for error handler function
Merge pull request #604 from rstudio/bugfix/observer-errors

Better handling of observer errors