Support compilation in 4.01.0+dev and 4.02.0+dev.

This patch makes it compilable in 4.01 and later. It also replaces the `or` operator with `||` in a few files, as the former is considered deprecated syntax.

The only real issue is that the `Marshal` module has changed its signature in 4.01 and later. The prefilter mechanism had to be changed -- we now need to prefilter on _both_ major and minor versions. Instead of a horribly complex sed secript, I've written a simple Perl script `build/prefilter.pl` that does the pre-filtering. (Rewriting this in OCaml is left as an exercise.)