IMPALA-1304: add block mgr API to atomically unpin or delete and pin.

We need to operation to be atomic when there is memory pressure and just the right
thread interleaving to be able to walk all the blocks in a stream with one buffer
backing it. Before this patch, it is possible another part of the query grabbed
the previous block that was unpinned. (In BufferedTUpleStream::NextBlockForRead()).

This patch also marks some of the tuple streams we use as delete on read.

Change-Id: I2ac3ea4bc1cbc8bd0b4b159c9d931427cbc0d7f7
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4541
Reviewed-by: Nong Li <nong@cloudera.com>
Tested-by: jenkins