Feature: add methods to factor common Result and Option types.
Feature: add methods to factor common Result and Option types.

Similar to Either::factor_first/second and Result/Option::transpose (though those lose no information).

Either::factor_none takes an Either<Option<L>, Option<R>> and gives an Option<Either<L, R>>,
merging Left(None) and Right(None) into None.

Either::factor_error takes an Either<Result<L, E>, Result<R, E>> and gives an Result<Either<L, R>, E>,
merging Left(Err) and Right(Err) into Err.

Similar for Either::factor_ok.

bluss/either