Add WeakMap.has and conform WeakMap.delete to spec

This builds on top of the test suite added in pull request #5 to:

- add a WeakMap.has method, which indicates the presence of a key/value combination [0]
- alter WeakMap.delete to return true/false, indicating if a key/value combination was removed [1]

References:
[0] - http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap.prototype.has
[1] - http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap.prototype.delete
I would inline the `has` here:

```js
delete: function(key) {
  var entry = key[this.name];
  if (!entry) return false;
  var hasValue = entry[0] === key;
  entry[0] = entry[1] = undefined;
  return hasValue;
}
```