Don't use fast path after -0 is added to a Set.

The fast path for Set stores the set elements as properties of a backing
object.  But -0, when used as a property, gets coerced to "0" and the sign
is lost.  When we later `ensureMap` we end up using +0 as the key instead
of -0.

To avoid this error, force `ensureMap` before adding -0 to the set.  This
uses the slightly slower (but still O(1)) Map backing storage, which
properly preserves the sign of -0 when it is used as a key.

Closes #202.
Merge pull request #203 from cscott/gh-202

Don't use fast path after -0 is added to a Set.
Coerce -0 to +0 when used in Map.set/Set.add.

This is a change in the es6 spec, rev23.
https://bugs.ecmascript.org/show_bug.cgi?id=2501#c3

Closes: #204
Merge pull request #205 from cscott/gh-204

Coerce -0 to +0 when used in Map.set/Set.add.
`a || b` is cleaner than `a ? a : b`