MAJOR: channel: stop relying on BF_FULL to take action

This flag is quite complex to get right and updating it everywhere is a
major pain, especially since the buffer/channel split. This is the first
step of getting rid of it. Instead now it's dynamically computed whenever
needed.
diff --git a/src/session.c b/src/session.c
index 28dbd19..ab9cd5a 100644
--- a/src/session.c
+++ b/src/session.c
@@ -1650,7 +1650,7 @@
 		unsigned int flags = s->rep->flags;
 
 		if ((s->rep->flags & (BF_WRITE_PARTIAL|BF_WRITE_ERROR|BF_SHUTW)) &&
-		    !(s->rep->flags & BF_FULL)) {
+		    !channel_full(s->rep)) {
 			s->rep->hijacker(s, s->rep);
 		}