Reduce dynamically-allocated memory, etc.

Changed the player_t struct's "heavy_items" and "npcs" arrays from
storing dynamically-allocated data to storing static data (thus
simplifying the saving and loading of player data), removed the
"equipped_heavy_items" array from the player_t struct, added
"equip_target" and "equipped" data members to the heavy_item_t struct,
added a "get_heavy_item_equipped_at" function, removed the
"get_equip_target" and "deinit_player" functions, and improved the
"equip_heavy_item" and "unequip_item_at" functions.