eal: add device iterator interface
A device iterator allows iterating over a set of devices.
This set is defined by the two descriptions offered,
* rte_bus
* rte_class
Only one description can be provided, or both. It is not allowed to
provide no description at all.
Each layer of abstraction then performs a filter based on the
description provided. This filtering allows iterating on their internal
set of devices, stopping when a match is valid and returning the current
iteration context.
This context allows starting the next iteration from the same point and
going forward.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>