Determine the property names to exclude beforehand.
Use __proto__ if available.
Cache whether __proto__ is supported.
Merge pull request #131 from RubenVerborgh/proto

Use __proto__ if available