Support ES6 MethodDefinition computed keys

https://code.google.com/p/esprima/issues/detail?id=563
Related to #271
Don't insert computed property key into existing properties map

https://code.google.com/p/esprima/issues/detail?id=584
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
Follow up the latest ES6 Patterns

https://code.google.com/p/esprima/issues/detail?id=586
computed properties start with a punctuator

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