Using XmlTextReader for expanding xml entities.

You can have now one common config and set specific params for each toon.
Or you can use several configs like before.
Merge remote-tracking branch 'A/experimental' into BleedingEdge
New DirectEve
Merge branch 'experimental' of git://github.com/ISeeDEDPpl/Questor into experimental
Merge branch 'BleedingEdge' of git://github.com/ISeeDEDPpl/Questor into experimental
Merge branch 'experimental' into BleedingEdge
unloadloot stack ammohangar fix, please test this.
Merge branch 'experimental' into BleedingEdge
Add DebugSettings setting, add more logging to the loading of settings (along with a counter)
Fix salvage bug where the "current" cargo container was marked as looted even though we CANT have looted it because we did not have room to loot it, we had to make a jetcan to fir it 9and wanted to loot it on the next iteration)

This bug only effected ships with small enough cargos that jettisoning needs to happen to fit the mission item: https://github.com/ISeeDEDPpl/Questor/issues/344
Add some debug logging to the setting loading in combathelper, and make combathelper more consistent style wise with the rest of questor
Combat debugging
better logging
Combat should not only target and engage things that Directeve considers ".IsNPC" and anything in the groupID list: IsNPCByGroupID, which includes all NPCs, missions, Belts, Storylines, overseers, etc, etc
re-add frigates to the shiptypevalues xml
more logging improvements
never return null for the value of an entity. Lookup its size and determine value by size if you cant find the value in the ShipTargetValues XML. if it is still null assume it is valued as a cruiser.
resolve exception when the target is not included in the ship target list xml
do not require the toon to be in station to run the RunOnceAfterStartup routine, the corp hangar command will only run if you are in station 9and checks for that), but that does not effect toons on diff behaviors that will never be in station.
If you are not in a mission and cache.instance.optimalrange is both 0 and not the same as settings.instance.optimalrange make them the same