Mastery and item parsing

What @satan6 was pointing out is that maybe they shouldn't be done with `assert` at all. I'm not sure I agree... I think that while they could be done with assert, the code shouldn't *depend* on `NDEBUG` not being defined. The *check* can depend on it, but not the functioning of the code.