Refactor Code

Implement protocol.
Introduce max packets into MapControl by Config object.
Split Controller and Controls into different packages.
Change scoping of methods that should be publically accessible to public.
Do validation of config options in config setters.
Introduce logging for send, receive & retransmit.
Improve listener logging.
Change field types from implementations to interfaces.
Return wrapper objects on send(Data): Packet and receive(Packet): Data
that contain the data id.