[COMMONS] Added FutureUtils to help with managing future execution (parallel or in sequential)

Using future with list of items to process independently is not obvious when you want to decide whether each item should be processed sequentially or in parallel (non-blocking in both cases). This small helper object makes it explicit.

Also, when processing a list of items and dealing with errors, should the processing stop (and fail the computation) on the first failure or should it do all it can and report the errors (using Either). This object support both versions.