Fake: root.remove() makes root a non-directory
merge test.mixins into test.common
test: simplify old *_mixin class names in test.common

also rename external() -> _get_external()