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.