How do I keep being restocked in such a way that when a friendly visitor comes, or a guest, or a scout, that I can get the skills they are offering?
Not all the visitors than come to your village can offer perks.
If you let the Wandering Master stay for a night (for the price of 100 cured meat, 100 fur, and 1 torch) he can give you the option to learn Evasion (decreases chance of an enemy hitting you by 20%), Precision (increases your accuracy from 80% to 90%), or Force (adds 1.5 damage to all melee weapons except for your fists). If you have unlocked all the perks from him, you no longer need to let him stay.
The villagers may present you with a man hiding in the store room, stealing supplies. You have the option to spare him or to hang him. If you choose to spare him, you will lose your supplies but gain the Stealthy perk (decreases chance of encountering an enemy from 20% to 10%). If you choose to hang the thief, all the stolen supplies will be returned, but you cannot learn the Stealthy perk. Regardless of your decision to spare or hang him, you can only encounter him once.
You may occasionally encounter a scout, which you can buy maps for a price of 200 fur and 10 scales to unlock an 11x11 diamond randomly placed on the world map. You can also learn Scouting (extends land radius of visibility from 3 to 4 squares) for a price of 1000 fur, 50 scales, and 20 teeth.
Those are all the perks that can be unlocked by visitors, but there are many more perks to be unlocked through many other ways. The full list of perks is on the wiki: http://adarkroom.wikia.com/wiki/Perks_(Browser)