WeakMaps

This code is completely borrowed from https://github.com/Polymer/WeakMap.
It is the most elegant polyfill for weak maps among [others](https://code.google.com/p/es-lab/source/browse/trunk/src/ses/WeakMap.js).