Split generic CCM handling out of ipaccess_bts_read_cb()

The generic functionality of responding to IPA CCM messages doesn't need
to be intertwined with our e1input abstraction.  We split this out
as new exported function ipaccess_bts_handle_ccm() and modify
ipaccess_bts_read_cb() to make use of that function.
diff --git a/include/osmocom/abis/ipa.h b/include/osmocom/abis/ipa.h
index bc34ca3..648f105 100644
--- a/include/osmocom/abis/ipa.h
+++ b/include/osmocom/abis/ipa.h
@@ -4,6 +4,7 @@
 #include <stdint.h>
 #include <osmocom/core/linuxlist.h>
 #include <osmocom/core/timer.h>
+#include <osmocom/abis/ipaccess.h>
 
 struct ipa_server_link {
 	struct e1inp_line		*line;
@@ -83,6 +84,8 @@
 int ipa_msg_recv_buffered(int fd, struct msgb **rmsg, struct msgb **tmp_msg);
 
 int ipaccess_rcvmsg_base(struct msgb *msg, struct osmo_fd *bfd);
+int ipaccess_bts_handle_ccm(struct ipa_client_conn *link,
+			    struct ipaccess_unit *dev, struct msgb *msg);
 
 void ipaccess_prepend_header(struct msgb *msg, int proto);
 void ipaccess_prepend_header_ext(struct msgb *msg, int proto);