Fixes either impl to be unsurprising in projections.

Adds tests for Either.js