Fixes #93, Implements EnvelopeEditor widget with example, other small fixes.

The main things are,
- Implemented EnvelopeEditor widget for manipulating a vector of `E` where `E` implements `EnvelopePoint` (see `all_widgets` and `envelope_editor` for details).
- Moved all the messy variables in `all_widgets` app into a `DemoApp` struct.
- Fixed ordering of `use`s so that they're in alphabetical order.