improvements in the CRace inheritance tree
improvements in the CMapTile inheritance tree

*fix assignment operators not calling base class' assignment operators*
fix assertion condition
create and simplify CShip inheritance tree

Make CShips subclass to CShip; simplifies CShips a lot.
From a visual point of view, a group of ships is always also
a single ship.
simplify some functions in CShips due to CShips subclassing CShip
cppcheck: make function static
refactor CShipMap to use boost::shared_ptr

Allows getting rid of confusing "bool destroy" parameters.
make constructors and assignment operators protected

CShip, CRace, CMapTile, CSector are all meant to not be instantiated
(other than by their subclasses).