Support hwloc 2.x.x
Created compatibility layer to account for API changes moving
from hwloc 1.x.x to 2.x.x while retaining support for v1.x.x.
Changes supporting hwloc 2.x.x include:
-reworked descendents lookup in topology tree to account for new
division of object children into "normal", "memory", and "io" types
-different memory access location for hwloc objects
-accessing distances (latencies) between nodes has been reworked
-different flags for accessing PCI devices
-changed numa node ancestor search to account for numa nodes no
longer being a normal part of topology tree
Fixes #2539
Change-Id: I483dda3dd344d8f7c99aa828bcc118a3d2de9dfd