force lowercase for PCI and USB identifiers

closes: #2122
Merge branch 'master' of github.com:guillomovitch/fusioninventory-agent
transfer inventory code in Tools::Hardware

This allows easier testing, as the underlying task uses threads.
add first inventory test
initial import
rename tests
get dictionary from models database
transfered in Tools::Hardware
fix some functions calls
move loadModel() function to Test::Utils
add inventory results
filter out unamed mappings
handle error reporting in the task
split querying single device into its own function
new switch_community() method
use new switch_community() method

No need to pass full parameters needed to create a new F::A::SNMP object
from scratch, as just reusing the current one is enough, and will also
support testing context.
handle F::A::SNMP object creation in the task
better interface for getDeviceFullInfo()

No need to pass the structure sent by the server to request inventory,
only the needed fields.
give model priority for device type

Yet another case of information duplication... An explicit device type
will be useful only when minimal support for inventory without model
will be implemented.
isolate hardware-specific test functions