Create base widget and data objects

Create a base widget class, an InputEvent class to describe an event,
and a RenderingContext object to provide information about the context
to a rendering widget.
Fix doc errors. Add TextBox Widget

Create basic framework for a TextBox widget, and fix various
errors picked up by jshint