Allow passing a docstring to Dispatcher

This allows documenting multimethods themselves, not just individual
implementations.

Obviously this will not work with @dispatch, since in that
case there's no single registration point where the documentation
could be attached.

Also, prefer more str.join() over repeated string concatenation
when building the docstring.