Storing min using BinomialHeap instead of linear scan

This takes @johannh's example down to < 1 second. Ie,

    let mkSeries objId = Series([for j in 1..60 -> (objId, j)], [1..60])
    [1..2000] |> List.map mkSeries  |> Series.appendN |> ignore;;

    Real: 00:00:00.926, CPU: 00:00:00.920, GC gen0: 33, gen1: 9, gen2: 0