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:**

- [x] 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.
- [x] 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...)
I like the idea of using a `binding` folder as a convention. But for multi-widget packages, it would mean that the entire `binding` folder is copied. My workaround usually is to put the `binding` file in the same directory as the widget. For example, if I have a package with `knob` and `justgage`, I would put the `knob-binding.js` file in the `lib/knob/dist` folder and the `justgage-binding` similarly, and just use an array of scripts in the YAML.

On the other hand, since the `bindings` are usually light, copying the entire folder is not a bad idea. Since the second approach supports both workflows, I would say let us go with that for now.