Slightly restructured how shopkeepers and their shopobjects are created.

Fixed: Shopkeeper entities duplicating if some plugin unloads the chunk
they are in without calling a ChunkUnloadEvent. This leads the entity
removal to fail (we can't remove entities from unloaded chunks) and can
then (if the shopkeeper gets saved to file without the old entity's uuid
(because we didn't save uuids of entities which we assumed to be removed
before)) later lead to another entity being spawned on chunk load
because the old entity isn't recognized as old shopkeeper entity.
This commit tries to fix this be loading the chunk to make sure that the
entity really gets removed.