compute_bin: Don't give warning for zero-row data
Preserve constants: handle zero-row inputs consistently
Load shiny-ggvis.js only for dynamic plots

This also refactors the ggvisOutput function so that there is the user-facing
function ggvisOutput, which always includes shiny and does not include a spec,
and the internal-facing function ggvisOutputElements, which allows control over
the spec and shiny.