Add pretty-printer for enums, OR-able int members, and structures
from fi_info. The current list of printable structures is defined
in fabric.h - fi_pp_type.

A call like:

char *buf = fi_tostr(cur, FI_INFO);
printf("%s", buf);

Will produce a string containing:

fi_info:
  type: FI_EP_RDM
  ep_cap: [FI_MSG, FI_RMA, FI_TAGGED, FI_ATOMICS, FI_BUFFERED_RECV, ]
  op_flags: []
  fi_addr_format:       FI_ADDR_PROTO
  connreq:      0
  source addr:  (null)
  dest addr:    (null)
  fi_ep_attr:
    protocol:   FI_PROTO_IB_RC
    max_msg_size:       -1
    inject_size:        64
    total_buffered_recv:        -1
    max_order_raw_size: 0
    max_order_war_size: 0
    max_order_waw_size: 0
    mem_tag_format:     aaaaaaaaaaaaaaaa
    msg_order: [FI_ORDER_SAS, ]
    tx_ctx_cnt: 0
    rx_ctx_cnt: 0
  fi_domain_attr:
    name:       psm
    caps: [FI_WRITE_COHERENT, FI_CONTEXT, ]
    threading:  FI_THREAD_PROGRESS
    control_progress:   FI_PROGRESS_MANUAL
    data_progress:      FI_PROGRESS_MANUAL
    mr_key_size:        0
    eq_data_size:       0
    ep_cnt:     0
    tx_ctx_cnt: 0
    rx_ctx_cnt: 0
    max_ep_tx_ctx:      0
    max_ep_rx_ctx:      0
  fi_fabric_attr:
    name:               psm
    prov_name:  PSM
    prov_version:       9