This commit removes the dependency of serialize.h on PROTOCOL_VERSION, and makes this parameter required instead of implicit. This is much saner, as it makes the places where changing a version number can have an influence obvious.
In addition to standard code separation, this change opens the door to fixing several include inter-dependencies.