Make sets during init behave the same as create(props)

If you were relying on set during init to trigger
an observer please move it to an on('init') function
which runs after the object is fully initialized.
clear factoryCache on-unregister
createChildView should throw a TypeError if no view or viewName was provided
inject Component's layoutName
Merge pull request #3189 from kselden/init-consistency

Make sets during init behave the same as create(props)
Merge pull request #3221 from stefanpenner/fix_component_with_factory_injections

Make components play nicely with factory injections