Migrate unlocking feature from old autograder.

This pull requests implements the unlocking functionality from the old autograder. The `Protocol` is not yet implemented (I'll do this in a separate pull request).

Some code for the grading protocol has also been rewritten to be more consistent (including the introduction of an `OkConsole` abstract class).

This resolves #53 .
The `unlockTest` already abstracts the call to the `unlock` function and handles all the `assertEquals` necessary. I don't think removing the remaining reptition will be worth the effort, but do you have suggestions?