Separate viewFromXML to createViewFromXML

viewFromXML was confusing, it was doing "caching of" and "creating" views.
The method is now split in two. Derived classes should simply overwrite
createViewFromXML()
Merge branch 'add-ctklayoutviewfactory'

* add-ctklayoutviewfactory:
  Separate viewFromXML to createViewFromXML