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.
Merge pull request #137 from rjackson/prevent-double-build

Prevent double initial builds.