First chunk of Wall fixes.
This patch adds virtual destructors where needed, moves all initialization lists of constructors in the correct order, and removes lots of dead assigment warnings appearing in clang (+ clang static analyzer). Still splitting up my large patches into smaller chunks, not containing any "critical" changes, that can potentially affect the behaviour - as discussed with Vitaly.

build_all still works fine.
Rubber-stamped by V. Choutko.