The initial steps to modularize the smartdevice. Modules are initialized based on the component negotiation, and each module can indicate which features it supports and which queries should be run during the update cycle.
* Separate fake protocols for iot and smart
* Move control_child impl into its own method
* Organize schemas into correct places
* Add test_childdevice
* Add missing return for _handle_control_child