Start moving StarSystem::Populate across to SystemGenerator

Move calculation of m_humanProx and m_industrial to generator.
Remove MTRand as a parameter from StarSystem::MakeShortDescription as
it's not used.
Move more of StarSystem::Populate to generator

Move initialisation of instance variables from Populate to Constructor.
Move factionIdx determination to generator.
Move call to do Body population to generator.
Notice that somewhere along the line I've changed things such that I
no longet three Starports in Ross 128.
Correct mistaken Rand usage of SystemGenerator::Industry()

Added a new PopulationRand() as this should not have been using SystemRand().
Should bring back missing Starports in Ross 128.
Update data/lang/Spanish.txt
fix reference to undefined table after visiting 1000 stations
fix the other undefined table refs
Merge branch 'perf/faction-colour' into enhance/sectorview-factions-zoom
Merge branch 'feature/factions-auto' into enhance/sectorview-factions-zoom

Conflicts:
	src/Factions.cpp
	src/Factions.h
Initial version of super zoom-out in sector view

Renamed SectorView::DrawSector method to DrawNearSector.
Extracted a new DrawSectors method from Draw3D.
Added a new SectorView::DrawFarSector method.
Added a new SectorView::DrawFarSectors method.
Changed Draw3d to call DrawFarSectors if you're zoomed out above the
current zoom limit, and DrawNearSectors if you're zoomed in below
the current zoom limit.
Adjust zoom limit upwards.
Updated SectorView::ShrinkCache to handle the greater number of sectors
needed by DrawFarSector.
Added a number of instance variables needed by DrawFarSector to ensure
it doesn't kill framerate (vertex & colour arrays, current viewable
sector ranges etc.)
Switch from using FactionIdx and FactionColour to Faction*

Where we have previously reference a Faction index or a Faction colour
value, we should now be using a pointer to the actual Factions.
This is in prepartion for displaying Faction names in the Sector view.
Added Factions Panel to Sector View naming factions shown

This is accessed by TAB, which now cycles between the info panel, this
new factions panel, and no panel, instead of toggling the info panel on
and off.
Tweaked the radius calculation of the when in Far Zoom mode to be less
weird at lower levels of zoom out.
Fix Faction panel not updating when in Near Zoom mode

Moved call to update the faction panel from DrawFarSectors to Draw3D.
Add mechanism for not drawing systems of selected Factions

Not hooked up to anything yet.
Add Toggles to show and hide Factions in Faction Panel
Time for another <Faction> cleanup pass!

Boiled the various different GetNearestFaction/Index methods to the only one
that's now needed.
Regularised the integer types to always be Sint32 or Unit32.
Added an IsValid() method so we don't keep doing faction->idx != BAD_FACTION_IDX.
Updated various callers of the above.
Whitespace fiddling.
Don't animate Goto Sector/System when in Far Zoom mode

Get all those sectors for the inbetween frames is expensive, better just
to go straight there.
Fix jerkiness when scrolling in Far zoom mode

'Beware the Judderman when the moon is fat!'

Turns out that I was using m_pos as the origin for when calculating
star positions when I should have been using the origin of the sector
m_pos was in.
This caused a nasty judder when crossing sector boundaries while
scrolling at any sort of angle to them.
Fix big fps hit when all factions filtered out in Far zoom

No longer calculating all the systems positions whenever the farSystems
vertex array is at size == 0.
Instead ensure the array initially gets filled by setting sensible
initial values for m_sxFar,m_syFar,m_szFar and m_radiusFar in
SectorView::InitDefaults.
Get a sphere rather than a cube of Sectors for Far zoom

...for blocky values of Sphere.
Since we are showing a sphere of stars it doesn't make sense and hurts
fps when scrolling or zooming to get a cube of sectors that enclose
the sphere instead of a (blocky) sphere of sectors.
Added Faction home system labels

Needs a whole bunch of cleanup as it's currently fairly ugly code, but
since it *is* actually working, here's a commit to perpetuate the
evidence.