Implement the application interface for submitting commands to the cluster and getting notified when those commands are committed.

Summary: I tried to send this on friday but it doesn't look like it went through.

Test Plan: go test

Reviewers: spencerkimball

Reviewed By: spencerkimball

Differential Revision: http://phabricator.andybons.com/D39