Check if a component is disabled at init time.
Check if a component is disabled at init time.

This change modifies the code so that at PAPI_library_init() time we
check the component disable field, and we don't call the init
routines for components the user has disabled.

This allows code like the following to happen _before_ PAPI_library_init():

    numcmp = PAPI_num_components();
    for(cid=0; cid<numcmp; cid++) {
       cmpinfo = PAPI_get_component_info(cid);
       if (strstr(cmpinfo->name,"cuda")) {
          cmpinfo->disabled=1;
          strncpy(cmpinfo->disabled_reason,"Disabled by user",PAPI_MAX_STR_LEN);
       }
    }

We might want to add a specific
   PAPI_disable_component(int cid)
call of maybe even a
   PAPI_disable_component(char *name)
as the above code causes compiler warnings since cmpinfo is returned as a
const pointer.

This all works because currently PAPI currently statically allocates all of
the components at compile time, so we can view and modify the cmp_info
structure before PAPI_library_init() is called.

pyrovski/papi,pyrovski/papi,arm-hpc/papi,pyrovski/papi,arm-hpc/papi,pyrovski/papi,arm-hpc/papi,arm-hpc/papi,arm-hpc/papi,pyrovski/papi,pyrovski/papi,pyrovski/papi,arm-hpc/papi,arm-hpc/papi,pyrovski/papi