Fix KCM ccache per-type cursor

The KCM per-type cursor was too simplistic and did not obey the
conventions of the other ccache types.  Fix it to return a singleton
cursor when the default cache is a subsidiary and to return the
primary cache first.

For internal convenience, make_cache now accepts a context parameter
and creates a kcmio if necessary.

ticket: 8002 (new)
target_version: 1.13
Fix unlikely memory leak in KCM client

Commit 956cbd24e645609c94fbc836840ce0f87ba3ce79 created a memory leak
if the KCM_OP_GET_DEFAULT_CACHE call fails inside kcm_ptcursor_new
after the KCM_OP_GET_CACHE_UUID_LIST call succeeds.  Fix it.

ticket: 8002