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