Starting npc spawn is Y.
Added reset_npcs function. Added currently active npc's %nr to debug feature. Removed unused code. Changed the way freshly spawned npcs act.
Added comments to npc.cpp
Added comments to npc.h (trying to figure out/document how it all works).
Added missing text to npctalk.cpp. (minor bugfix).
After death/suicide the npcs/factions, artifacts, and overmap and local map are saved now. (was not done before, some of this data gets deleted later when the character specific save is deleted).
Splitted some of the save() functions out to separate functions.
Changed the debug 7 function, all the active npc locations are now shown as messages.
Added minor comments at places.
Updated the cleanup to not save everything when it has already been saved. Pushes the cleanup npc's to the omap, removes them from the active list to prevent teleportation.
game::load now also runs update map, to correctly get all the inactive npcs.
Wish prompt has hint to search function added.
Added solar cells.
Added several spawn sites for solar cells.
Added solar panel recipe.
Updated changelog
Added crafting recipe for CBM: Solar Panels; made CBM: PAI reversible
adjusted CBM: Solar Panel craft difficulty
Accidentally a trailing comma
Made npc vectors pointers to npc objects and not just vectors of npcs. Fixed the code so it worked everywhere.
Updated the active npc list. Now it works like this: all npcs are stored in the overmap list. And active npc are temporary stored in the active list when active.
The active list is not saved. It will just load the npc from the overmap.
Made getters and setters for the npc and player ID. To make them harder to change.

Minor fixes
* Added searching info to wish.cpp
* Added helper functions to the overmap. These functions look for npcs in specific overmap squares.
* overmap now prints a list of npc names. Not just one.
* fixed typo in radio message
Also added npc function to check if the npc is in the active list.
* added the word mutation, to the mutation strings. As those could be very unclear. "you lose ugly"
* reworked mission fail and mission end to work with the new npc system.
* cleaned up the dead npc removal system. It now actually removes the objects.
* fixed the nuke stuff.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	field.cpp
	game.cpp
	player.h
	ranged.cpp
Fixed some merge mistakes.
Merge remote-tracking branch 'upstream/master'
Fixed long range debug teleport also teleporting npcs.
Fix some warnings that turned up when attempting to compile with MSVC
Allow compilation using MSVC 2010 Express, both 32-bit and 64-bit
itypedef.cpp takes a huge amount of time to compile, so disable optimization for now
Add a comment clarifying standards-compliant getch() behavior

After a lengthy forum debate involving an alternate and streamlined implementation of getch(), I discovered that getch() IS in fact required to call refresh() at times. It's unclear whether InvalidateRect (a Windows-specific function) is required as well, but a screen refresh is the desired outcome.

Leaving a comment to that effect, so that future programmers aren't lead on another wild goose chase when they notice that getch is refreshing the window without an obvious reason.