System: split `make_directory` into two functions
System: rename system-command functions to Shell.*
sys_test: add a test for System.Shell