[INTERNAL] Core: rework getOwner functionality, clarify documentation

- the owner can now be queried not only for components and MVC 
  entities but also for ordinary controls or even managed objects
- the circumstances under which an owner will be known and what can 
  be expected from such an owner has been documented in more detail
- Component now supports a method runAsOwner which allows to execute
  some code under the "ownership" of that Component. UIComponent uses
  this method during its createContent hook, a Router uses it when 
  creating views. Controls, frameworks or applications can use it 
  for their own code that runs outside of UIComponent.createContent 
  or Router.getView().
- most of the ownership handling has been moved to Component 
  to avoid a conceptual dependency from ManagedObject to Component.
- for some limited time, the ManagedObject.getOwnerIdFor and 
  ManagedObject.runWithOwner methods are kept for compatibility 
  reasons, although they had been marked as private.
  They will be removed very soon!
- usages of Component.getOwnerIdFor have been migrated to 
  Component.getOwnerComponentFor which is more convenient and has 
  a cleaner contract (always returns a Component)

Change-Id: I9673258372b2d28f4fe4221a375bb8266ed593e1
Merge "[INTERNAL] Core: rework getOwner functionality, clarify documentation"