new lock in stream and bug fixing

- use new lock (instead of reusing prod_lock) to support update prod_sd/cons_sd. This is to separate lock usages: one for polling (prod_lock) and one for update stream descriptor (sd_lock).
 - fix bug: trivial, LpelStreamConsumer/Producer should check if stream
   is null