add utils.text.is_subdirectory

to help with #63