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:

- [ ] Add test for only mixing into child once
- [ ] Test with demo app
- [ ] Update docs with Flight 1.2.0 requirement and note about withBoundLifecycle