Revamp widget connector

Do not merge yet, but please do review.

PHPCS errors will be addressed by https://github.com/x-team/wp-stream/pull/390 and https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/162

New features:

- Log changes to widgets in the customizer
- Handle batch operations on widgets
- Add deactivated/reactivated actions
- Add basic support for old single widgets
- Remove hooks which tie into the UI, and rely solely on actions which fire when the underlying data is modified.
- Introduce an alternative way to generate summaries from templates, instead of using `sprintf`. This allows us to not send the sidebar name to the stream meta, for which the sidebar ID should be the only data needing to be stored.

Todo:

 - [ ] Improve behavior of logging movement of widgets between sidebars when in the customizer.
 - [ ] Add database migrations for any changed stream meta (e.g. `sidebar` => `sidebar_id`)
 - [ ] Add widget edit link, in addition to the widget area edit link.
 - [ ] Should `widget_id` ever be added as a context?
 - [ ] When moving a widget from one sidebar to another, should there be one Stream record with two contexts, or two records with one context each?