Add mechanism to the BufferedBlockMgr to allow pinning multiple blocks at once.

The callers of the block mgr will want to Pin() multiple blocks at once
(e.g. PinStream()). Typically, if it can't pin all the blocks, it needs to
unpin them and fall back to something else (e.g. repartitioning).

There's no point in pinning half the blocks (forcing writes to disk).

Change-Id: I0e05b8243a27e8b99f5692f781c4b498d600284d
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4495
Tested-by: jenkins
Reviewed-by: Nong Li <nong@cloudera.com>
IMPALA-1293: Fix DCHECK failure with window ROWS BETWEEN UNBOUNDED PRECEDING

Change-Id: I4e92e9593402f4341826c6940e23e493c7d23641
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4487
Reviewed-by: Matthew Jacobs <mj@cloudera.com>
Tested-by: jenkins
Char PARQUET, AVRO, and TEXT tests

Adds fixes and tests for Hive CHAR & VARCHAR compatibility.
Also fixes a bug in tuple materialization for VARCHAR and non in-lined CHAR.

Change-Id: I400b089cb8ddba2e264ef9f2e37956b2ceaaf9fb
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4054
Reviewed-by: Victor Bittorf <victor.bittorf@cloudera.com>
Tested-by: jenkins