Implement timeouts for locks.

This commit includes the code necessary to allow clients to time locks out. The
outside API has not yet changed, but that's coming.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Expose lock timeouts to public API.

It is now possible for users to cause locks to timeout. This information has
been added to the README, along with an example and some minor rewordings.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Introduce a common test suite to test the locker application.

This commit includes a CT suite to randomly do things to the locker application.
I had hoped to distribute this across several nodes, but I couldn't figure out
how to do that. Still, has some use.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Update README, bump version to 0.1.0.

I'm removing the WORK IN PROGRESS from this commit and feel that the library is
now actually useful.

Signed-off-by: Brian L. Troutwine <brian@troutwine.us>
Merge pull request #1 from blt/timeout_impl

Timeout impl