Switch regeneration dependencies to deps file.

Before this change, if you delete a BUILD file Cobble is aware of,
you must reinit your build directories.  This is because Ninja has
no dependency type that implies "rebuild me if this changes, but
tolerate it going way."

Or I should say, it has no *syntactically expressible* dependency
type that does this.  But it actually does implement these semantics
for dependencies generated during C preprocessing.

So how does one use this type of dependency?  One generates a Makefile
describing it and points Ninja at it.

Seriously.

This change expresses our regeneration dependencies using a Makefile.
The project shape can now change arbitrarily and we'll reinit.