Make v0.8.5 actually work on windows.

Next time, when writing code specifically intended to work around
platform misfeatures, it would probably be a good idea to actually
test it on that platform; this revealed a number of bugs.

I'm not certain that all of these win multiprocessing hacks are
even a good idea; they're introducing a bunch of complexity
into the startup code paths and make the API harder to understand,
and I'm not sure if I can really make them correct in all cases,
either :(.
add note about both paths being untested
Rework windows multiprocessing approach.

Now we default to spawning unless told not to (what seems likely to be
the common case).

We also rework the way we handle hooks like the classifier and
setup/teardown functions so that they can only be set
from a caller that is importable (and doesn't spawn).

This simplifies the APIs and the implementation.
fix handling of wmp=ignore on windows
Merge branch 'master' into stable