Rename Either's first/second back to left/right (again), to be consistent with Scala and Haskell.

Missed a bit in the previous commit.
Fixed bug in Either.equals()
Favor the right side of an Either, as in Scala.

Suggested by Ryan Deak in code review.
Align API terminology more closely with that of Guava Optional.

Scala's Either uses "map", but Guava's Optional (and its collections) uses "transform". Since this Either is designed as a duple extension of Optional, and uses it in the API and implementation, that's the better alignment.
Added Either.fold(), to make it easier to combine two code paths back into one.

Suggested by Ryan Deak in code review.
Updated signatures of Either.transformLeft() and transformRight() to facilitate chaining.

Suggested by Ryan Deak in code review.
Improved DRYness of Either left() and right() operations

...as suggested by Ryan Deak in code review.