Refactor: extract check

The check function will perform the checking of a given sources within a
working directory.
Refactor: prepare_functions come as paramerers

To be able to re-use the check function in other projects.
Refactor: test_functions is a parameter
Rename sm.tgz -> source.tgz

This will break existing workspaces.
Rename smroot -> chroot

This breaks compatibility with existing workspaces.
Rename smroot.tgz -> chroot.tgz
Rename smroot_run -> chroot_run
Amend README
Amend README
Add scripts to compile vhd-util
Fix UI for check-sm.sh