Implement view_dynamic

view_dynamic is like view_static, except that a connection to the R session is maintained
and the data parameters in the gigvis tree can be functions or Shiny reactive expressions.

vega_spec_dynamic returns not only the vega spec, but also a list on the side ("datasets"
attribute) whose names are vega data names (that were created on the fly) and the values
are the corresponding values that were in those positions.

For example:

gigvis(data = function() { cars }, ...)

would be automatically transformed into something approximating:

structure(
  vega_spec(gigvis(data="data_12398498213", ...)),
  datasets = list(data_12398498213 = function() { cars })
)

These two pieces are used by view_dynamic to construct a Shiny application on the fly
that sends updates to data_12398498213 whenever reactivity dictates it (and the new code
in shiny-gigvis.js knows how to push this data to the appropriate chart).