new sample and test
new test and sample
move physical cpu extraction in its own function

This allows a simpler return value interface.
adapt test to dual information sources
Merge remote-tracking branch 'forge/master'
use UNIVERSAL::require
load YAML only if tests are going to be run