Split functionality into two mixins with better names

- withChildComponents (exported) and withBoundLifecycle (internal)
- Don't mix withBoundLifecycle twice

**Not ready for merge** but here for review and to track progress.

Todo:

- [x] Add test for only mixing into child once
- [x] Test with demo app
- [x] Update docs with Flight 1.2.0 requirement and note about withBoundLifecycle