Fixed inventory building, almost 100%

I don't yet understand linq queries well enough but the conditions for
the regular inventory need to make sure that MainWeapon is excluded
(unless there's more than one of that item) and will probably need to do
the same for anything in the p.Keys collection