Some improvements in ScopedSpinLock

This patch  (a) Disallows constructing ScopedSpinLock objects with NULL lock_ and
removes the if not NULL lock checks; (b) Removes the AcquireLock() interface; (c) Adds a
new call in SpinLock that dchecks whether the lock is locked_.

With this change there is a single (simpler) way one can use the ScopedSpinLock.
Previously, one could either pass the lock at constructor or go through the AcquireLock()
interface.

Change-Id: Ia83624e44a11178bef7efd7295482aa10ba7d094
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/5633
Reviewed-by: Daniel Hecht <dhecht@cloudera.com>
Tested-by: jenkins