Add imap

Like map, except returns an iterator