Move enumerations art_effect_passive and artifact_natural_property into enums.h

This allows including only that header and not the artifact.h header.
The artifact header includes the itype.h header, which is thereby included in nearly all source files.
Remove direct usage of artifact from mondeath.cpp

map::spawn_artifact does the same as the previous code in mondeath.cpp
Remove artifact.h from inventory.h

Move inventory::has_artifact_with into a lambda function inside of
player.cpp which already knows about the artifact item type.

This encapsulates the has-artifact logic inside the player class.

Remove some needless includes of artifact.h
Add some includes of artifact.h in places where it had previously been used via inventory.h
Move artifact-effect check into item class.