Prevent double initial builds.

Pass a callback function from the Watcher into `Builder::build`. This callback is called everytime a plan string tree is found. The watcher uses this to keep track of what directories it is watching.