Allows PDA's to unlock lockboxes.

Fixes #3945. This always bugged me.
This is considered "hacky" because you are always individually checking the type path, which will have to always be expanded when new items that have IDs in them are added.

There is a proc called "getID()". It is given to all items and will return an ID if there is one, otherwise null. Instead of this check, make it so that you check that the returned result of that proc isn't null.