Add "master", "server" and "client" binaries.
Add documentation for the protocol

Describe echanges between
- master and client
- master and server
Master can receive commands from server.
"online" and "offline" became "register" and "unregister".

Update the documentation.
Add a structure describing a command, introduce protocol version.
Add commands handling for server
Server register on the master server when opening.
commands.h is now common to every binaries

Also add a notice about that in commands.h
Make commands parsing and generating more generic

Describing commands in src/commands.h is a bit more verbose.
For each command, it produce :
- A structure who describe each arguments
- A function to make a command ready to be send from the structure
- A function to set a structure from a received command

Error handling are not very good for now.
Optional argument of "denied" becomes mandatory
Make commands lowercase
Move command_set_<name> and command_get_<name> to commands.c.
Return value of sscanf and sprintf is checked.
Master and server handle error when managing commands.
Fix generating functions when there are more than one command.
Add a compilation flag for each binaries

The build system was reworked to allow this.
Classify and genere commands only if necessary.

Strongify the use of the commands, restrict the use of every commands.
Now, only server can send "register", and only master can received it.
Add "accept" command
Server can now receive and handle "accept" command
Master can now send "accept" command