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)
Comment on who handles this exception (I ask for this because typically in our system you *never* throw exceptions so any use of this for control flow should be carefully documented for future readers)