Network protocol regarding shot transmission changed.

Previously, the shooting client was sending out the point of a shot
to the opponent, the opponent decided whether the shot is valid and
returned the resulting cell.
When layout exchange at the start of the game was introduced this
way of communicating became redundant. Now client performing the
shot validates it locally, using provided enemy layout. If shot is
valid, it sends out data about it to opponent and alters the local
enemy layout.
Program and connection closing pieces were rewritten.

Now when program disconnects from current game it will send an
opponent a notification. This implementation should be better
then previous, which simply was catching exceptions about connection
loss, since the disconnection is expected in current implementation.

Unexpected disconnections (caused by real network troubles) still
are processed by exception catching, since they are inherently
unexpected.