Closes #11: Create lock(), acquire_lock() and release_lock() methods.

This patch creates a nd_service_registry.Lock object that can be used in
two ways. In the first method, you can use the object in a 'with' block
-- explicitly acquiring the Lock only while your 'with' block is
running.

The second model allows you to call acquire_lock() directly to lock a
path, but relies on you actively calling release_lock() (or your
connection expiring) before the lock will be free again.

At this time it is not possible to add a 'wait' timer in on the Locks
because of the way Kazoo is written. I'll work with the developers to
understand the behavior and see if we can add that model in later.

Change-Id: I4d361ee5a25236fb9fcb3168a310c9184312a961