Add collectives for allgather, allreduce, bcast and reduce
Don't build smpi in a separate library anymore.
Fix build without smpi.
Make dist complete, and fix "make distcheck".
Remove extraneous parentheses, and silent clang.