MovableObject is an abstract class, i.e. no instances of MovableObject
should exist. MovableObjects are objects which are able to
send/receive themselves to/from Channel objects. With each movable
object is associated a unique class identifier, it is this id which
will allow object brokers in remote processes to create an object of
the correct type. In addition when databases are being used, each
MovableObject will have a unique database tag, it is this integer
which will allow the objects to retrieve their own data from the database.