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
use encodeURI[Component]() and decodeURIComponent() from httpuv
increase version requirement of httpuv
Merge pull request #630 from yihui/feature/httpuv-encode

use encodeURI[Component]() and decodeURIComponent() from httpuv
Merge pull request #604 from rstudio/bugfix/observer-errors

Better handling of observer errors
Bump version to 0.10.2.9002
Update NEWS
escape HTML entities to avoid XSS attacks in DataTables

BTW, per recommendation of http://datatables.net/manual/server-side, the parameter `draw` is coerced to integer
per-column escaping
apply `escape` to column names as well
a news item for #627 [ci skip]
fix the issue reported by Tareef: dplyr tbl_df objects are also data frames, but the default non-standard evaluation df[, j] will fail in dataTablesJSON(), so we need to coerce such objects to data frames explicitly
make `escape` support column names in renderDataTable(), per suggestion of @jcheng5