Merge join.c into forkjoin.c
Remove unused code.
Return retval in place.

This allows us to avoid caching the return value before join in the fast
path.
Add missing file.