Move artifact item type creation to map::spawn_artifact

This is the earliest point that is common for all artifact creations and there is no need to pass the artifact property through item to Item_factory.
That also eliminates the need for the artifact.h include in Item_factory.h

Item_factory::find_template will also look for the requested type in itypes because newly created artifacts add their itype only to itypes and not to Item_factory::m_templates.
Removed the c_str call whose result is converted to a std::string anyway.