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 
Can't we give them the same interface so that it doesn't matter? E.g. let a blocking client return a closure that stores the reply and produces it when called. This is a convenience class and the interface does not have to match anything in the rest of KATCP (e.g. DeviceClient.request or Message.request).