Implement to be (a|an) [non-empty] (map|hash|object) whose properties satisfy

Closes #24.
Merge pull request #62 from sunesimonsen/whosePropertiesSatisfy

Implement to be (a|an) [non-empty] (map|hash|object) whose properties satisfy