This builds on the fix by @woutervdub in #5449 that ensures the
rmcutonfold macro removes the cutonfold info from the store.
However, the same problem applies to the grainline data which can be set
by both cutonfold and grainline.
So I've added that. And while I was at it also created explicit methods
to remove this data instead of having to pass in false which I found
counterintuitive and a throwback to the v2-ways.
In addition, the grainline can be set by both grainline and cutonfold
macros. So when we remove either of them, we should only remove the
grainline info if it was actually set by them. But there's no way to
know that at remove time.
So I've also added the logic to set grainOrigin in the store which will
be `cutonfold` or `grainline` depending on the macro that set the grain.