Fix 'allow unresolved' for at least two list cases

lists did not respond well to cases where only some of their
elements were resolved or even when none of them were resolved
but one of their object identities happened to change. Previously
this would throw a nasty 'bug or broken' exception so it seems
unlikely to have unintended side effects.
passing the resolved status here is essentially an optimization (to avoid recomputing it) so it might be nice to still pass it if we do know we are requiring resolution? otherwise if we drop the optimization, maybe there are no callers with non-null and we might be able to entirely drop the constructor that takes a resolve status... that could be fine too. Isn't really performance critical code.