See live preview changes as-you-type, without hitting Update button

There's a couple more things I'd like to do for this, but it is ready for review.

Fixes #45 

Remaining tasks:

- [x] ~~Don't submit `value` for preview if it ends in trailing whitespace, since `sanitize_text_field` will strip it out and make it seem there is an error in the field.~~ (Core widgets use `strip_tags` anyway, so this doesn't seem to be a need.)
- [x] Force an input to be updated even if it is focused if the form was submitted by pressing Enter (so that a blur doesn't have to happen)
- [x] When doing a full form replacement (for non-live preview widgets), try to preserve cursor location after replacing the entire form in the field which was being edited. Chrome seems to want to select all of the contents when focusing.
- [x] Ensure compatibility with RSS widget, which can show an error message. See `wp_widget_rss_form`
- [x] Provide facility for widgets to provide custom live-preview support, for handling when fields get submitted for preview, and how the fields get updated when the updated form returns via Ajax.
- [x] Add support for Twenty Fourteen Ephemera widget
- [x] Fire events on controls that are unsanitary.

Not in scope:

- ~~When a widget is submitted for live preview, the Ajax handler should respond not only with the widget form, but it should also allow the widget to send back (via a filter) arbitrary information about error messages or statuses.~~
- ~~Yellow-fade inputs and the widget-inside as a whole when the form gets fields updated with sanitized values back from the server. Right now it adds a red background color to invalid fields.~~