Make distinct key functions more F# friendly, add ofSeqOn that uses a scheduler.