Dropping keys

fixes #2108
This prevents a key from getting added to the players inventory if one already exists.

I went for this solution as it seemed that it could be quite frustrating as the player to not realize you have a key, go looking for it, only to not have it drop anywhere. I'm not actually sure which solution is best but I would love to hear what others think.

Also while in the code I adjusted the white crystal spawn so that it is based on location rather than a set value.