A semi-port of python's os.walk