Do not traverse the whole inventory tree with host properties during hosts polling

* We find first the MOR of the ESXi host and use it later to get the
  properties we want to retrieve instead of retrieving properties of all
  hosts and then look for the MOR
Find the Datastore MOR first and then get it's properties
Use the MORs from cache when retrieving object properties
Refactor objects discovery using dict comprehensions