Issue #13782: streamline argument type-checking in ET.Element

append, extend and insert now consistently type-check their argument in both
the C and Python implementations, and raise TypeError for non-Element
argument.

Added tests
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index a50a3e7..e8309df 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -803,6 +803,15 @@
     seqlen = PySequence_Size(seq);
     for (i = 0; i < seqlen; i++) {
         PyObject* element = PySequence_Fast_GET_ITEM(seq, i);
+        if (!PyObject_IsInstance(element, (PyObject *)&Element_Type)) {
+            Py_DECREF(seq);
+            PyErr_Format(
+                PyExc_TypeError,
+                "expected an Element, not \"%.200s\"",
+                Py_TYPE(element)->tp_name);
+            return NULL;
+        }
+
         if (element_add_subelement(self, element) < 0) {
             Py_DECREF(seq);
             return NULL;