inventory: new framework for discovering things about the system

@estenberg @zzamboni @nickanderson please review before I start filling this out with specific code

Work statement is in https://cfengine.com/dev/issues/3563