io: improve recursive_directory_walk
- Add optional throttle Semaphore pointer to limit the number of spawned fn as well as directory walk fibers
- Use const references to the passed functions instead of values
- fsearch: Use max_running as fn and recursion throttle