Gave all regions a characteristic point method

This allows for a country to be refered to by a it's midpoint. This is
useful for compass point locations and calculating distances.
Fixed the TransCost method in ItemSellable.
Added sorting function to the ItemMarketplace

Made a SortTool to be used with all marketplace sorting.
Made a bunch of changes to bring NPCs online!

The new way of dealing with prices is that the ItemMarketplace
implements a getcheapestUnititem method that can find the cheapest item
per unit of kind ItemStack. Gave playerdatas a list of associated NPCs
that will "follow" them around.
Almost have NPC Buying algorythm done.

They bought all my axes :(
Implementing NPC Buying. Fixed so many bugs.

I added an output file that translates the entire item tree into a yml
file. This will be substantially easier to navigate and potentially
easier to read, once I get code folding to work with yml files. NPC can
buy a good amount of items now, I've gotten rid of a a lot of the debug
statements.
Tax paying has been implemented but not tested

All governments pay to their supergov before the supergov pays. The gov
just below GlobalGov pays to the npcs of the residents of the gov.
Fixed some subtle bugs.
Protection is enabled. It's untested though.
Lots of bug chasing. Not a lot of actual changes through

Made getTotalMoney so that you have to put a Math
Protection is actually working pretty well.

Not fully tested yet, but it's getting there.
Protection works now. Next is improving messaging.
Re-did the messaging system. Works much nicer now.