API updates to simplify usage

The following patches tweak the libfabric API, primarily to
simplify its use from an application's perspective.  Changes
are:

1. Move defines from fi_endpoint.h and fi_domain.h into fabric.h
2. Remove uneeded FI_EP_MAX enum value.
3. Define FI_PROTO_PSMX in fabric.h
4. Make enums fi_addr_format and fi_proto unnamed unions.
   The enum values remain the same.
5. Rename fi_info::type to ep_type
6. Introduce fi_info:mode field.  The domain caps of:
   FI_CONTEXT
   FI_LOCAL_MR
   FI_WRITE_NONCOHERENT (replaces FI_WRITE_COHERENT)
   move from domain_cap to mode bits.
7. Define FI_MSG_PREFIX mode
8. Merge fi_info::ep_cap and domain_cap into single caps field
9. Remove FI_PASSIVE cap
10.Rename FI_USER_MR_KEY -> FI_PROV_MR_KEY.
   Move from caps field to mode bit.