Abstracted NPCScript

Each type of npc has it's own script which inherits from NPCScript. This
should make things much more neat in the future.