vecfold: Fold vectors of Results into Result of vector

This package provide a generic way to "unwrap" a Vec<Result<T,E>> into Result<Vec<T>, E>. Here is an example:

```rust let valid: Vec> = "1,2,3".split(",").map(|x| x.parse::()).collect(); let invalid: Vec> = "1,2,a".split(",").map(|x| x.parse::()).collect();

// happy path, no errors, just the values assert_eq!(vec![&1, &2, &3], valid.foldr().unwrap());

// sad path returns the error assert!(invalid.foldr().is_err());

// happy path, no errors, return empty error vector asserteq!((vec![&1, &2, &3], vec![]), valid.foldrbisect());

// sad path, populate error vector let (ok, ) = invalid.foldrbisect(); assert_eq!(vec![&1, &2], ok); ```