Basic puppetry demo on the server.
Merge branch 'warnings'
Merge branch 'pup_demo'
Add virtual desctructors to Puppet and Actor.

(facepalm)
Merge branch 'serverlogic'

Conflicts:
	src/server.cpp
Merge branch 'terminal'
Requested player_num is honoured again.
Remove old puppet.hpp
Can set step_size and tick_per_sec in constructor.
Add basic puppetinfo (/bin/describe)
Smallfix: client_id more sensible.

Used to give id '1' to nobody, and '2' to the first client. Now
nobody's client_id is 0, and the first client is '1', which is less
surprising.
Fix: server doesn't stop when a client disconnects.

It was a SIGPIPE thing: the broadcast broadcasted the message about the
client disconnecting, and failed to exclude the client itself, so we
were writing in a broken pipe.

It's handled more sanely now.

Players disconnecting while playing are still not handled properly.
Parser no longer registers subprograms with errors

Just what was I thinking?
Handshake now doesn't involve sending scripts.
Add mount command.

Mount allows to 'mount' external (real-life) directories as in-game
dirs. It only works on subdirs of (RL) pwd (for the sake of our sanity).
It doesn't do much yet, but does track the changes.

This means that if I modify/add/delete a file while the game is running,
I'll be able to use the changes in the game.

Caveats: don't mount a dir in a mounted dir. The computer won't explode,
but the inner mounting is lost whenever the outer is refreshed. Yeah, it's
naive, but we can call it undefined behaviour.

Also, the automatic refresh is called merely by the string_to_path, and
nothing guarantees that every relevant part calls it, so it's a big fat
TODO to write getters/setters (inserters, deleters) for Dir.
Add mounted_files. Fix path problems.

Mounted files can be read.

Oh boy, I created a monster.
Same parser can be restarted for another file.
Server funs want Packet instead of string.

Maybe less pretty, way more flexible.
Add compile function.

Usage: compile <path>*

It's not perfect by any mean (the code is a real mess, with a terrible
amount of tight coupling introduced), and it doesn't even really get
the job done, but it's a start.

Theoretically we'll be able to register scripts while playing :)
Freezing_return allows output.