With get pv

Adds get_pv() function to get a PV from a process-wide PVcache, making a new PV connection only if a PV with that name, form ('native', 'time', 'ctrl') and threading context does not exist.

Device and other collections of PVs use this.   It may need more testing  (threads, multiprocessing) but solves performance issues with apps that need to create PV objects that point to PVs that may have been connected elsewhere.