Restructure the ckernel CRTP helper classes to share common code