libexperiments: properly refresh experiment states

An experiment is enabled if the file /config/experiment/<exp>.active
exists. The old code assumed that Catawampus would create/delete this
file whenever the state of an experiment changed (as pushed by ACS).
It turns out that it does not do that and instead just creates a new
file, either <exp>.requested or <exp>.unrequested, and then expects
the user process to check for that and create/delete the <exp>.active
accordingly. The new code does this now.

I also dumped all my understanding of the experiments framework into
go/gfiber-experiments-for-the-rest-of-us. Please read there for more
details.

Change-Id: Ibdd4fcce447905ce6f63694357e9f335d630872f
3 files changed