dstore sm component implementing shared memory database for pmix client/server communication

This Pull Request contains a new component, “sm”, in the “dstore” OPAL framework.  Today, this component is employed solely by the PMIx client/server to implement a shared memory database containing PMIx key-value pairs. However, this component can be fully leveraged in any other framework/component(s) that utilizes a “dstore” component (with the assumption that only one process can write to shared memory segment).
 
It should be noted that the “dstore_base_open” API was extended in order to add the ability to specify a prioritized list of components for a new handle. Furthermore, the “dstore_base_get_handle” API was added to allow a “dstore” consumer the ability to query whether or not a shared memory segment is available.

Currently it's disabled by default. To enable it, mca parameter dstore_sm_enable should be set to 1.