Break up locking in DiskIoMgr::ScanRange.

Currently, the entire object is protected by one lock. Unfortunately this
lock is taken during calls into libhdfs. This means it is impossible for the
scan node to pull off ready buffers while the disk thread is reading from
this scan range. Whoops. The lock is taken while in libhdfs to facilitate cleanup
so it's very easy to split the big lock up.

Change-Id: Idbf34cdba0cf860a90f9cad016d1ec133f923d85
Reviewed-on: http://gerrit.ent.cloudera.com:8080/2143
Reviewed-by: Nong Li <nong@cloudera.com>
Tested-by: jenkins
Fix buffer overflow bug in StringCompare()

Includes benchmark for comparing different StringCompare() implementations.

Change-Id: Ib4623b3ae6c99977af332ce5161da66af3cae9e5
Reviewed-on: http://gerrit.ent.cloudera.com:8080/2168
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: Skye Wanderman-Milne <skye@cloudera.com>