Fix `last` and `last_` for effectful streams
Fix `last` and `last_` for effectful streams

Previously those functions would forget the most recent value whenever
they encountered an effect.

E.g.

    λ> runResourceT $ Streaming.Prelude.last $ Streaming.Prelude.readFile "LICENSE"
    Nothing :> ()

Instead of the expected

    λ> runResourceT $ Streaming.Prelude.last $ Streaming.Prelude.readFile "LICENSE"
    Just "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." :> ()

m0ar/safe-streaming,michaelt/streaming,haskell-streaming/streaming,michaelt/streaming,m0ar/safe-streaming