Bugfix

Init server and communicator

When there is no mock object given, just init and use the normal ones.
Add tests for communicator

Now tests for the control flow of communicator
Delete unneeded code

Deletes some print() calls that should never have gotten so far.

The process_*_msg functions were extracted to communicator,
but not deleted in gameserver.
Refactor systems to own module

systems will be used by client and server, so its probably a good a idea
to give them their own module.
Make debugging communicator more easy

Communicator now has a debug flag, which allows to inject
a mock server into it. If it's not set, communicator
will init a normaler server and use it.
Delete dead code

Deletes a stub unittest, which did nothing.
Make debugging gameserver easier

Gameserver now uses a debug flag, which allows to inject a mock
communicator and mock world into it. If the flag is not set, it will
init standard objects and use them.
Insert a server loop

Gameserver needs to calculate the game state and will now process at 60
ticks per second.
Refactor into client/server packages

Moves serverside modules to inspace/server and clientside modules to
inspace/client.

Conflicts:
	inspace/lib/pysdl2

inspace/lib/pysdl2 is now deleted but still needed. This should be added
with another rebase. pysdl2 is a submodule
Adds client/communicator

The client also benefits of a distinction of the game itself (graphic,
user input) and communication (json to python calls and vice versa).

The communicator takes internet input and translates the json into
python calls.
Rename entrance script to Inspace.py

inspace.py "breaks" tab completion for inspace/ thus I rename it to
Inspace.py. (I should probably config tab completion correctly instead
of renaming files)
Add player lookup

We now can look for players based on their connection_token.
Fix lib path

Previously libs were moved to the lib dir. Paths referencing libs must
be changed accordingly.
Add a player.id -> player lookup table
Move clientsocket init into communicator
Declare broken tests broken and add an Mockclasses

Tests are broken and are not supposed to work. They are now not
evaluated so they don't throw errors anymore.

A general Expand class is created, which can be expanded to mock
objects.

A general CalledRight exception was created. It can be thrown by a mock
object to indicate that it was called right.
Adds players module

Connected players are now tracked by server.players. This helps by
deciding to which ip to send information and finding the charakter
player to player.
Redo entity system

Synching game state was very complicated. Now entities are created on
the server side and are synched to the connected clients. The clients
get the id, type and position of the ents and then update/create that
ent on their side.
Change processing of keypresses

Pressed buttons are now saved and then the velocity of the player object
is calculated by the given keypresses.

Fix not beeing able to press multiple keys

To lower processing time key presses were only processed if no other key
is pressed right now. Keys are send a first time they are pressed and
(after a short delay) repeatedly while pressed down. To avoid this a
key_down var was introduced. This rendered multiply keypresses
invisible, keypresses after a pressed down key were ignored. This commit
deletes this "feature" and allows multiple keypresses that are now all
handled by process_command()
Add logging

Logging was done per print(), which es neither readable nor dynamic
configureable. Thus now the logging module is used, which allows to
- log to a file
- log with different verbosity
- configure logging in a central place