Use apiv4, cache infra for basicTypes
I came across this as using an old weird pattern accessing the DAO. On looking it made most
sense just to switch to an apiv4 call. The caching was not convoluted but effectively
used an array cache, if loaded, and the array or Redis or sql cache if not. This
is the same as using the 'metadata' or 'contactTypes' cache so I switched to the latter.
I was inclined towards the former as I lean towards thinking this metadata all belongs in one - but there
is already another function in the same class going to the latter.