Added NPC loading and our first NPC appears on the screen! :)
Various refactoring and abstraction, see diff log for full details.