This pull request removes the dependency of serialize.h on PROTOCOL_VERSION, and makes this parameter required instead of implicit. This is much saner in my opinion, as it makes the places where changing a version number can have an influence obvious.
This builds upon #1109, but since it may be more controversial, it's a separate pull request.