Add WeakMap, closes #96

Don't merge until licence situation is clarified in https://github.com/webcomponents/webcomponentsjs/issues/137