Add DataTables-based viewer for tabular data

This change implements a new viewer for tabular data (`data.frame` and friends). The viewer takes the place of the existing data viewer. It's built on the popular [DataTables](http://datatables.net/) library.

![image](https://cloud.githubusercontent.com/assets/470418/5309164/cd6c8244-7bd4-11e4-9dd3-2af5e162787a.png)

DataTables provides virtualized scrolling of large datasets, fixed headers with sort UI, and maintenance of view state, but all of the interesting data-related work (sorting, filtering, etc.) happens in R. The DataTables client bundles the client state and sends it to the server, which returns the slice of visible rows requested.

(Not ready for merge; needs review)
In order for the error handling to work correctly the try/catch has to enclose the entire function implementation. This is because r::exec::error is going to do a longjmp which would bypass the destructors of any C++ objects on the stack.