First step at introducing abstraction layer for KPF files
Replaces all raw kpf dictionary accesses with method calls.
Abstracted more of the KPF format so that add_texture no longer depends on raw dictionary access.
Internal version-independent functions no longer make direct dictionary calls
remote_json no longer depends on kpfutil