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.
Move enum item_cat enum to enums.h

So inventory.h can use it without including itype.h (it does not need to know what itype is).
Move morale_point::name into player.cpp

Remove the parameter morale_data[], it can be used directly inside of player.cpp
Move Item_factory::nname into class item and make it static.
Move Item_factory::count_by_charges into class item

Remove the redundant logic in item::count_by_charges, instead use the virtual function of itype.
Move access to it_comest::spoils into a function of item class.
Move access to it_armor::storage into a function of item class.
Move access to it_armor::encumber into a function of item class.
Move access to it_armor::coverage into a function of item class.
Move access to it_armor::warmth into a function of item class.
Move access to it_armor::thickness into a function of item class.
Move access to it_armor::env_resist into a function of item class.
Move access to it_armor::is_power_armor into a function of item class.
Move access to itype::techniques into a function of item class.
Move access to itype::m_to_hit into a function of item class.
Move access to itype::charges_to_use() into a function of item class.
Move access to itype::id into a function of item class.

Use item::is_null() instead of comparing item type id with "null".
Erase some pointless casts to itype_id, which the value of itype::id already is.
Move access to itype::invoke into a function of item class.
Move access to it_container::contains into the item class

it_container::contains is no longer used outside the item / Item_factory
classes.
The function item::get_remaining_capacity_for_liquid is used instead. It
can handle all the liquid types and hides that logic there.
Reduce redundancy in item::bash_resist and item::cut_resist:

Move the common (for armor and non-armor) code outside, add check for items of no material at all.
The armor specific part is now encapsulated in a small piece of code.