Unify bindings

This is a proposal for unifying the little JavaScript snippet each widget author needs to include. Rather than having one codepath for static rendering and one codepath for Shiny, you can use this simplified API to support both at once:

```r
HTMLWidgets.widget({
  name: "knob",
  initialize: function(el) {
    $(el).knob();
  },
  renderValue: function(el, data) {
    $(el).trigger("configure", data);
    $(el).val(data.value).trigger("change");
  }
});
```

This example doesn't show it, but if `initialize` returns a value, it's passed as a third argument to `renderValue`.

**Open questions/issue:**

- [ ] If it's likely we'll have input bindings in the future, then perhaps `HTMLWidgets.widget` should be renamed `.outputWidget`, or something like `widgetType: "output"` or `output: true` should be required on the object.
- [ ] The `widgetOutput` function uses `widgetname_output` rather than just `widgetname`. I didn't include it in this PR but to get the knob example working, I had to change it to just `widgetname`. Maybe you can help me understand the indented semantics of `widget_div`/`widgetOutput`.
- [ ] Where should package authors be told to place their binding.js files? It can't be right in inst, it needs to be a subdirectory, otherwise we will copy the entire package into their dependencies directory at static render time.

**TODOs:**

- [ ] Validate the .name property provided by the user. (Or maybe we can infer it? Would that be too magical? Probably...)
Perhaps, although, keep in mind that an htmltools style dependency object needs to be made from the binding JS file. That really implies that it needs to be in its own directory if you don't want to unnecessarily copy around other files, since htmltools considers the entire contents of the src directory to be necessary to deploy a dependency.