Script for autogeneration of Factions

**update**: I've now tested on a slower system than my desktop, and the speed wasn't a problem on that particular machine. See latest comment.
...

This generates a few less than  100 additional factions, that are the same for each game start 

I was hoping I could do this just in Lua, but it turned out that without C++ changes to skip adding factions where the home world didn't exist, you just get crashes. Also it doesn't work without the removing of the back-link from government type to Faction (you'd get the colour but not the actual allegiance) which I did as part of #1621, so that ended up being merged into the branch right at the start.

There are a bunch of variables in the script to tweak.  

With the included settings, an interesting place to look at is Sector -17,2,9 where the Independent system of Ethed apparently lies within a debatable border region in which the Federation, Liberation Union, and United Systems, look to be competing for territory with the True Expanse.

Thanks to @brianetta for answering my questions about Engine.rand in Lua, and @robn for pointing me at util.hash_random when that didn't work out.

....

**Updated Summary of Changes 18/11/2012**

**from #1621**

- (from #1621) Removed any usage of government type to determine faction allegiance
- (from #1621) Allow custom systems to specify their faction allegiance by faction name.
- (from #1621) Custom systems can now specify a weighted list of government types that faction worlds can have.
- (from #1621) Adds custom system 'Rondel' which demonstrates specifying a faction for a custom system
- (from #1621) Updates existing custom factions with the changes.

**Factions Auto-generation**

- data/factions/99_AutoGenerate.lua added
- Adds 100 Factions in an angled plane in a box extending 60 sectors along each axis from 0,0,0.
- There are a bunch of variables at the top of the script to tweak for tuning the generation, including number generated.
- Each faction has a custom name, generated from a list of likely sounding prefixes and suffixes.
- Each faction has a custom name for it's military based on the faction name and the a set of military sounding suffixes.
- Each faction has a custom name for it's police based on the faction name and the a set of police-y sounding suffixes.
- Each faction has a custom set of illegal goods, weighted towards the more serious ones.
- Each faction has a custom weighting for government types favouring a particular type among a set of similar ones.
- Each faction has a custom colour which I've tried to prevent from being dark and muddy.
- The same set of factions with the same names and properties are made every time if the variable settings are the same.

**Known Problems**

- No translation support. This is due to the Faction's lua context being isolated.
- The faction homeworld may not turn out to be inhabited. This is a sysgen issue.
- The faction long description is complete crud.
- Brute force scan through potentially all the factions to find allegiance might be slow with this number of factions, if you're getting allegiance for a lot of systems (I don't see this on the machines I have access to though).