Static methods can be called both on on class instance
and on the type object. With this refactoring it is now
possible in Python static/class methods to distinguish
which way it was called and in case of instance call
get the instance.
This commit also reworks ResourceManager to use new
functionality. Now all ResourceManager methods
are static so no class instance is necessary. If resources
belonging to some other type are required it is possible
to provide the type object explicitly to each method.
However it is still possible to create ResourceManager
instance and call statics as a normal methods. In this
case they will recognize it and will operate that were
captured at class construction. Thus it is still possible
to create ResourceManager at one place and pass it to
another class in another package so that it will access
resources of the package where the instance was created
rather than that where it used.
Change-Id: Ib47be86a99eb7903f7d3f7e1c5f2570df819c2d8