Make bsp safer to use.

1 Now it is copy-constructable.
2 Callee no longer needs to reset itemDiscovered after call items.