Use new set_conditions method in tests

New method to set up extractor configurations (from core).
Use new build_config method in specs

From core.
Use set_conditions method in spec_helper
Add simple_cov
First stab at specs for CommitCommand
Fix extraneous whitespace in gemspec
Add simplecov to gem file in test group
Add caching support
Lock active_model to v3.2.20
Lock rosette-datastore-memory to remaining_ds_methods branch on github
Make ExtractionSyntaxError print a better message...

…especially when used in combination with PrintingErrorReporter.
Store line numbers for phrases
Adjust some whitespace in FileTypeFilter
Refactor snapshotting

Should be way faster now.

The way things used to be:
Snapshotting would iterate over all files with a TreeWalk. For each
file, it would iterate over all the commits in the repo to find which
one contained the most recent change to that file. This was slow mainly
because RevWalk instances can’t be reused (see:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=439856)

The way things are now (as of this commit):
List all paths in the given commit’s tree and build a hash of paths to
nil values. Use a single RevWalk to iterate over all commits. Use a
single instance of TreeWalk to find the files changed in that commit
(reset it on each iteration). Gradually replace nil values in the
snapshot hash. When all commits have been examined, the hash shouldn’t
contain any nil values. Note: TreeWalk instances can be reused.