Id Update Batches: More fixes & enhancements

1) GenerateNpcMappingFile - Attempt to deal with mapping non-unique names by versioning the encounter number numerically.

2) NpcIdUpdate - Use new mapping file format

3) NpcIdUpdate - Better handling for mapped whitespace npc names like blank, csnpc, etc.

4) NpcIdUpdate - Only generate shift properties for non-guess shifts.

5) NpcIdUpdate - Prevent reusing the same id twice. Helpful check when scanning when multiple npcs with the same name exist in a row.

6) Start a backwards scan from the lower bound. Helps correct situations where there is a jump in NPC ids and the next few npcs have the same name.

7) LuaScriptNpcIdUpdate - New job to find/replace updated ids across all Lua Scripts using data collected from the NpcIdUpdate job that was not a guess (a direct or mapped match was made). Should ease updating scripts after version update as well

8) Updated readme.

The enhancements to mapping file greatly reduce the number of guesses made by the NPC update job, which in turn greatly reduces the need for manual fixes after the job is run.

Futher enhancements are still needed in a few areas. After I gather learnings from the June update with these fixes, I will take another shot at improving the jobs again before the July update.