Add Either.getLeft() and .getRight()

- Get left or right of either as optional value
- Express Either.fold and .toResult in terms of either catamorphism
Reverted Either.getLeft() and getRight() functions as suggested
Merge pull request #113 from dtchepak/master

Add Either.getLeft() and .getRight()
Merge remote-tracking branch 'upstream/master' into core-removal