Bug 969672 - Handle declined engines in meta/global.

As far as I can tell, this successfully:

1. Records declined engines during setup.
2. Persists declined engines encountered via meta/global. (Note that we don't merge these with the local choices. This shouldn't be an issue unless there's a race between two clients declining engines at the same time!)
3. Uploads the same.

Tests are no worse than they were before, and I fixed one that was NPE-failing due to variable shadowing.

This should be enough to support desktop use-cases.