Initial PlanetSystem class

Add the PlanetSystem class with one method:

 - allowedorbit(self, testorbit): Check whether the supplied orbit is
   valid.
Add barebones GURPS_OrbitContents

Add a skeleton file that outlines the contents of GURPS_OrbitContents.

This file will then be fleshed out with the class methods. A good way
to implement expanding of the __init__ method is needed.
Add blackbody temperature to OrbitContent

Add the capability of calculating the blackbody temperature for the
OrbitContent class.

Change the names of the classes somewhat and make GasGiant a child of
OrbitContent instead of World.
Add GasGiant methods makesize and printinfo

Roll for random size generation of the GasGiant.
Complete placement of first gas giant

Complete the placement of the first gas giant, according to the gas
giant arrangement.

Add a class method "printinfo" to PlanetSystem.
Add Orbital Spacing Table

Add the Orbital Spacing Table (GURPS Space p. 109). The index is the
roll, since 3d are rolled without any modifiers.
Add generation of orbits

Add the generation of orbits in PlanetSystem. If there is no gas giant,
orbit generation proceeds outwards from the inner limit. If there is a
gas giant, orbit generation proceeds inwards and outwards from the
orbit of the first gas giant.
Remove debug information

Remove print() statements that were used for debugging purposes.
Add automatic generation a PlanetSystem instance

Add the automatic generation of a PlanetSystem instance for each star
in the StarSystem.
Fix bug in orbit generation

Fix a bug that occurs in outward orbit generation when starting from
a very small orbital radius.
Round values for output

Round values that are output to the display via printinfo() to 3
decimals maximum.
Add representation for Gas Giant

Add a __repr__ method for the GasGiant class for a representation of
the format "[Size] Gas Giant".
Add a dictionary to keep track of orbit contents

The dictionary has the orbital radius as key (since this is unique) and
contains primarily None as value.

During initialization of the dictionary perform the check for existence
of a first gas giant and place it in there if that is the case.
Make output listing of orbit contents nicer

Sort the orbitcontents dict according to key (orbit radius) and make
a nice, line-broken display of the contents.
Export calculation of size bonus for gas giants

Make a method (PlanetSystem.gasgiantbonus(orbit)) that returns a bool
value for the size bonus of a gas giant (that has to be passed during
initialization).
Automate placement of gas giants

Automate the placement of gas giants according to GURPS Space p. 110.
Make GasGiant silent and identifiable

Remove the automatic printinfo that occurs after initialization of a
GasGiant instance.

Also: Add a method type() that returns a string "Gas Giant". This is
for easier identification of what type of orbit content we have at some
point.
Flesh out World and AsteroidBelt classes some

Add a type() method to all OrbitContent subclasses to ensure uniform
response modes.

Also add a __repr__ method for uniform representations.

Flesh out the World class some by adding a modified initializer method
that takes the size class of the Terrestrial Planet as an additional
argument.
Add filling of orbits with orbit contents

The PlanetSystem will now automatically populate orbits according to
GURPS Space p. 110.
Respect forbidden zone in orbit generation

Fix #1 by checking for the edge case that the forbidden zone begins
closer to the star than the inner limit.