SF Bug #215126:  Over restricted type checking on eval() function

The builtin eval() function now accepts any mapping for the locals argument.
Time sensitive steps guarded by PyDict_CheckExact() to keep from slowing
down the normal case.  My timings so no measurable impact.
diff --git a/Misc/NEWS b/Misc/NEWS
index 7d21994..d01f20b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
 Core and builtins
 -----------------
 
+- Bug #215126.  The locals argument to eval() now accepts any mapping type.
+
 - marshal now shares interned strings. This change introduces
   a new .pyc magic.