Move block mgr initialization code outside of global lock.

We see high contention in BufferedBlockMgr::Create under concurrent workloads.
The issue is that the block mgr is shared across all fragments within a query
so there is a process wide lock to maintain the map of query ids to created block
mgrs. The code before this patch does the initialization of the block mgr with
the global lock held.

This patch moves does two things:
  - Move the initialization to hold only the block mgr lock and not the global lock.
  - Defer some initialization to first use: don't create the tmp files until the first
    spill.

Change-Id: If7a02df84acbd18a330bf8aed0e9a8226f8a2210
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/5068
Reviewed-by: Daniel Hecht <dhecht@cloudera.com>
Tested-by: jenkins
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/5247
Reviewed-by: Nong Li <nong@cloudera.com>