Merge pull request #12 from taavi/master

Adds Taavi to contributors list, with affiliation
add some words to blockcode readme
Add README for graph layout engine
only one state machine implementation
Merge pull request #14 from jvns/master

Add README for graph layout engine
Merge pull request #13 from dethe/add_blockcode

Added blockcode to repo
Basic test framework with matchers, negation, and a binary test runner.
Convert test runner to thor task. Add method mocking. Add describe blocks for grouping trials. Convert line counting to a trial.
Add individual test runs for files in lib
Add gem-release so we can push it to rubygems.org
Merge pull request #15 from sarahmei/master

Basic test framework with matchers, negation, and a binary test runner.
rewrite to use MultiPaxos

* add deterministic networking
* add run.py to run three cluster members and a client

This is still incredibly inefficient:
* leaders battle it out for leadership on every invocation
* message sizes are unbounded
* the size of local state is unbounded
work on cluster startup; 'seed' the cluster with a degenerate node to set initial state
implement a simple kind of leader lease using heartbeats
cleanup
run the deterministic network in approximate real time
allow proposals with no caller, for internal operations
Adopt new cluster members using a RSM-based view evolution process
Apparently functional membership-change protocol.

With lots of debugging-harness stuff still hooked up.
autopep8, fix up comments