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 
@ludwigschwardt  Question here is, do we want the default to be async (i.e. the tornado future)? I assume for observation scripts blocking requests would be preferred, unless all scripts are turned into tornado coroutines, while for internal CAM usage we would probably prefer the async interface. Perhaps we need to talk about this a bit?