Added an optional recursion to FileSystem::delete(), replacing remove()