Introduce StringMap to clean up duplicate check code

Introducing StringMap to clean up duplicate check code.
And it fixes some bugs on harmony MethodDefinition's duplication check (__proto__ and key.name lookups).

https://code.google.com/p/esprima/issues/detail?id=585