Rename Feature Meta/Virtual to Definition

Mark, I know this actually the opposite of what we talked about, but I figured this would be nicer to pattern match on and when you need `ConcreteDefinition` directly it has more context. Win/win. :)

We definitely have too many tests that should be using `Arbitrary`, but I don't want to get bogged down fixing them now.
> I think this should be Concrete(enc, ty, desc, tombstoneValue)

Whoops. I changed this, but it's a pattern match so this is correct.