Sketch KATResource API (and related classes) using ABCs

Extract and define the non-KAT specific parts of the katcorelib KATCP client API into this package. The generic KATCP implementation will also be moved here.

Plan is that the KAT-specific API will be elaborated in https://github.com/ska-sa/kattelmod to facilitate colaboration with SP and easing the implementation of dry-running. The implementation of KAT-specific clients will build on this base in katcorelib.

@ludwigschwardt 
What about constructing _returns and exposing them via `__getitem__`? Some requests in CaptureSession use this.