Enable modular building of selected providers, disabled by default.

0, 1, 2, or 3 (all) providers can be built as loadable.
Any combination of loadable/built-in/not built should work, ie:

$ # build into libfabric.so: psm, sockets
$ # dlopen: libibverbs-fi.so, $libdir/libfabric/*fi.so
$ ./configure –enable-verbs=dl

$ # build libfabric.so: nothing
$ # dlopen: lib{sockets,psm,ibverbs}-fi.so, $libdir/libfabric/*fi.so
$ ./configure –enable-verbs=dl --enable-sockets=dl --enable-psm=dl

$ # everything built in as normal
$ # dlopen: $libdir/libfabric/*fi.so, if exists
$ ./configure

This patch also factors utility functions (used by the providers but
not exported as part of the public API) into src/common.c, which is
built and linked into libfabric.so and also in any modular-built providers.
Merge pull request #112 from pmmccorm/master

Enable modular building of selected providers, disabled by default.