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 
I would call this file 'resource.py' so that you can do:

from katcp.resource import KATCPResource

This matches the behaviour in e.g. server.py (KATCPServer) and client.py (DeviceClient).