do not read descriptors when iterating class dict

Iterating a class dictionary, e.g. ``Foo.__dict__.keys()``, yields
the descriptor *value* rather than the descriptor itself.  If
reading the descriptor fails, the member is omitted entirely.

Change PythonType.GetMemberDictionary to include the descriptor
object itself instead of trying to read it.
Merge remote-tracking branch 'frasertweedale/fix/dictproxy-descriptor-iteration' into ipy-2.7-maint
Fix CP#33904 - PythonDictionary.Contains(KeyValuePair) doesn't check value.

(cherry picked from commit da3cec10ca344a1c39b35b8bb2d8c1b1bbf67902)
Fix #95: Restrict platforms the P/Invoke SetEnvironmentVariable.

Only platforms with native code support should be using P/Invoke.

(cherry picked from commit a2958123bc3ab824c5ba8c5f09839fe934973393)
Fix 24276

- Added check for correct types as well as for null (None) and generate the correct error messages.

(cherry picked from commit b21758ce2507421a94b57982777258fa5f0611df)
Fix 26676

- Added check for application/zip in check for the type of the script.

(cherry picked from commit 67a18d21b4468913d4513aa393f8e18eed6c2a1b)
Add test files to .gitignore
Implement Python issue 9666 http://bugs.python.org/issue9666

hasattr shouldn't swallow all exceptions.  Handling AttributeError
is handled by TryGetBoundAttr

Feature is only enabled when -X:Python30 is passed.

(cherry picked from commit 5ae039a7b2aeb5726fc6dd05aa17c143b96022a7)