Add context argument to widget render().

Having access to the form context makes it easier to make multi-input
form widgets, as you can access schema metadata, and current values for
other fields. The example use case that fueled this change was a date
range picker made of a start/end input.
Pass the context into widget rendering.

Both render() and afterRender() need access to the current form context.
Add a special `_view` widget.

Widget classes can use `_view` as a dependency to access the current
view class. This makes it much easier for widget objects to add script
files, css files, or render elements if they need to.
Merge pull request #3685 from markstory/3.0-widget-context

3.0 widget context