bpo-30040: new empty dict uses key-sharing dict (GH-1080)

Sizeof new empty dict becomes 72 bytes from 240 bytes (amd64).
It is same size to empty dict created by dict.clear().
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 83cadda..108c612 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -691,10 +691,8 @@
 PyObject *
 PyDict_New(void)
 {
-    PyDictKeysObject *keys = new_keys_object(PyDict_MINSIZE);
-    if (keys == NULL)
-        return NULL;
-    return new_dict(keys, NULL);
+    dictkeys_incref(Py_EMPTY_KEYS);
+    return new_dict(Py_EMPTY_KEYS, empty_values);
 }
 
 /* Search index of hash table from offset of entry table */
@@ -1276,6 +1274,9 @@
     Py_ssize_t newsize;
     PyDictKeysObject *new_keys;
 
+    if (minused == 0) {
+        return PyDict_New();
+    }
     /* There are no strict guarantee that returned dict can contain minused
      * items without resize.  So we create medium size dict instead of very
      * large dict or MemoryError.