Add documentation, modify _Widget lifecycle.

* Align _Widget lifecycle to evolving standards
* Add documentation around _Widget
* Update README to point at documentation