Split player 1 and player 2 controller

You could use the same controller to control both player 1 and player 2.
This is a problem when two players play over the network, since both
players can control both combatants. This commit is a step towards
fixing this problem.

A new GameBoardListener is added for each player. You can set the keys
that the player uses to control their characters. Currently two presets are
defined.

PressSwallow (which used to be static) was made an instance since there
are two GameBoardListeners. Each listener needs to keep track of the
keys pressed.

The handshake code was revised to account for the possibility of two
controllers with the same IP.