CLEANUP: task: remove unneeded tests before task_destroy()

Since previous commit it's not needed anymore to test a task pointer
before calling task_destory() so let's just remove these tests from
the various callers before they become confusing. The function's
arguments were also documented. The same should probably be done
with tasklet_free() which involves a test in roughly half of the
call places.
diff --git a/src/session.c b/src/session.c
index 875fae8..c77f1e9 100644
--- a/src/session.c
+++ b/src/session.c
@@ -448,11 +448,8 @@
 		goto fail;
 
 	/* the embryonic session's task is not needed anymore */
-	if (sess->task) {
-		task_destroy(sess->task);
-		sess->task = NULL;
-	}
-
+	task_destroy(sess->task);
+	sess->task = NULL;
 	conn_set_owner(conn, sess, conn_session_free);
 
 	return 0;