Added Future.collect
Added Void to be used with Result and Future where there isn't a useful type to propagate