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
No need to call return at the end of a void function.  Remove return and replace goto out with just a return statement