Add programmatic way of assisting experimentation

We provide an experimental foundation for assisted experimentation by
allowing the user to modularize the tasks that are common but unique in
implementation to every experiment, including knowing how to:

- Perform any required initial setup to get the model ready.
- Parse the training dataset.
- Parse the testing dataset.
- Train the model given a training instance.
- Make a prediction for a test instance using the current model.

This closes gh-21.

Once the task specific implementations are known, we then coordinate the
use of those functions to perfrom the experiment in an automated fashion
by automatically performing tasks that can be common to any experiment:

- Run an experiment given an implementation of all the modular tasks.
- Incrementally train the model and get the current model's performance.
- Get the test instances that were incorrectly labeled using the current
model.

This provides most of the work for gh-22.