scheduler: Don't block etcd table while scheduling containers
scheduler: Don't block etcd table while scheduling containers

Before, we unnecessarily held the lock for the etcd table for the entire
duration of scheduling. This is excessive because we simply need the
etcd table to check whether we are the leader.

Note that the previous code that held the lock for the entire
transaction seemed to imply that we could not lose our leadership
because we were blocking the etcd table. This is incorrect because if
the elector does not run while we are blocking the etcd table, it will
still be unable to refresh the leader node, and thus lose its
leadership.

PenguinToast/quilt,tejasmanohar/quilt,tejasmanohar/quilt,NetSys/quilt,kayousterhout/quilt,kayousterhout/quilt,ejj/quilt-dev,kklin/kelda,kelda/kelda,LuiseV/quilt,kklin/quilt,kklin/quilt,NetSys/quilt,LuiseV/quilt,NetSys/quilt,PenguinToast/quilt,kklin/kelda,kelda/kelda,NetSys/quilt,tejasmanohar/quilt,LuiseV/quilt,ejj/quilt-dev,quilt/quilt,quilt/quilt,kklin/quilt,kelda/kelda,ejj/quilt-dev,kklin/quilt,NetSys/quilt,LuiseV/quilt,kayousterhout/quilt,quilt/quilt,PenguinToast/quilt,ejj/quilt-dev,kklin/kelda,kayousterhout/quilt,PenguinToast/quilt,kklin/kelda,PenguinToast/quilt,kelda/kelda,LuiseV/quilt,tejasmanohar/quilt,quilt/quilt