Lots of miscellaneous fixes or minor additions.

Objects have a height now: they can be underground and out of reach if
need be.
When asking for information about a unit or giving information, you can
ask/give info about the objects its holding.
unit assignment operator and default constructor now exist.
Communication protocol now allows you to offer/counter offer
information, and actually give the information.
Communication wrapper now requires that you are close to another unit to
begin communicating with it.
The communication protocol and wrapper now require that you (accurately) declare who you are when
communicating, allowing the reciever to communicate back.
The get functions from allunits now return a new pointer to the unit in
question, the a pointer directly to the data in allunits, so that the
data does not continue to update to the current, but rather becomes out
of date. This means that at some point, any data returned by a get
function MUST be deleted. Something like int str=allUnits.get(this, 1,
0)->str is ILLEGAL and WILL cause a memory leak. Each return value MUST
be saved and safely deleted.
Oops. Forgot one thing. Part of previous commit.