More vocabulary changes.

unbind_and_associate -> extract
Fixed sentence test when using small # of synsets.

Sometimes there would be parts of speech with no members, but the code
would still use sentence roles that draw from those parts of  speech,
eventually giving an error since no synsets capable of filling those
roles will be present.
Removed old abstract algorithm.

Now only one abstract extraction algorithm, of which the neural
extraction algorithm is a direct implementation.
Prints instance difficulty in abstract case aswell
Different clargs for making rels and roles unitary

Also some pep8 in utlities.py.
Small fixes.
Huge revamp.

Turned each test into its own class. Makes it more natural to configure
the tests.

This commit also makes it so that after each run both the vectorization
of WordNet and the extractors are rebuilt using different random seeds.
Removed -r and -v clargs.

-r was used to include relation statistics in the output file, but these
are now output by default.

-v was used to make it a verbose run, but now we do that be default too.
Raise a NotImpl error if gpus but not identical.
Improved print_config for neural_extraction

Was previously printing out the eval points, which made it unreadable.
GC after each corpus/extractor creation.
Better runtime logging.
Turned run.py into a function.

Args only parsed if __name__ == "__main__"