This removes the ability for a grant string to switch projects, in accordance with our updated design. It mostly removes code, with a few test fixes, and also adds one additional check (and test) to ensure a grant errors rather than do-nothing succeeds if both id and type are empty.