Add support for static constructors

THIS IS A PROOF OF CONCEPT AND NOT YET COMPLETE.

The idea is that configure builds up a list of providers that are
statically included in libfabric.  It writes out tables of the
provider constructors and destructors in
include/rdma/fi_static_providers.h.  This file is included in
src/fabric.c.  The first time fi_getinfo() is called, it walks the
table of constructors and invokes them.

Still to do:

* Need to make it safe for multiple threads to call fi_getinfo()
  simultaneously: the "first" check needs to be safe, and none
  of the callers should be able to return until all the constructors
  have been called (i.e., probably need a mutex).
* Don't know what to do with the destructors yet.