curried Either and added Left and Right

properties are prepended with _ to allow functions left() and right()
isRight() added to pass strict mode

i am thinking along the same lines, e.g.

```javascript
function Either(left, right) {
   // currying etc.
   if (right) { return new Either.Right(right); }
   if(left) { return new Either.Left(left); }
```

... where `Left` and `Right` inherit from (and override) `Either` prototype, e.g.

```javascript
Either.prototype.map = noop;
Left.prototype.map = function() { return this; };
Right.prototype.map = function(f) { return new Right(f(this.value)); };
```

there are some details to work out: what does `Left.prototype.of` return? What if the `f` passed to `Right.prototype.map` fails/returns null? etc.