logic: Fix elo calculation

Typical sign error...
Make port configurable
Update dependencies
Remove playground
Move helper code out of schema.resolvers.go
Fix multiple bugs

1. Panic, when trying to vote without a match being in database yet
2. The first element of the reset slice was the first of the old slice.
Reset slice completely to fix that.
1. Return error if less than 5 players are in a team. Happens when
   trying to query for a team when no team has been created yet.
Add captains to getTeams; will be used for map veto
Implement mapvote in memory
config: Read configuration from file with go-scfg
Move getTeams from mutation to query
Add getTeams

If no id is given as an argument, this will return the teams from the
currently ongoing match.
mutation: Improve error handling
mutation: Improve error message
mutation: Remove id from CancelMatch and FinishMatch

Since we only allow one match at a time we can simply use the 'ongoing'
match status to operate on matches.
mutation: start-/cancelQueue id -> teamspeakID

While the website gets steamID and through login with that teamspeakID
and id, the teamspeak bot only knows about the teamspeakID.
Improve error handling further.
Add custom error handling

Will enable clients to better handle different errors.
mutation: Add updateUser

Can be used to update, avatar url, name, elo and teamspeakID.
User: Add optional field for avatar url and nickname