gtools: add various helpers for executing multiple functions at once

gmap: Like map or imap
gmap_unordered: Return results immediately, not in order.
get_first: Return first result to finish from a number of funcs
get_all: Return when all funcs have finished