Add Rectangle.ZERO field
Use some iterators in FlightPathGenerator
Rework airspace to make it easier to use with network code

This commit has 2 main changes (other changes are to ensure things still
compile).
- Landing causes planes to be culled and taking off generates new aircraft
  objects. Before the Aircraft object itself was stored in a list.
- Flight path generation is initiated from the airspace class (instead
  of within AirspaceObjectFactory).
  + This avoids various hacks needed before to force an aircraft to accept
    a new flight plan.
  + It also means that there is no element of chance involved with the
    AirspaceObjectFactory. This is needed for the network code since the
    client will need to FORCE the gui to create a plane when the server
    tells it to. This was not possible to do (without massive hacks) before
    this change.