Tree builder: recursive directory iterator