Fixed: WorkflowManager.__init__() checks arguments more strictly

Previously, the WorkflowManager would attempt initialization when given any
iterable. This would lead to unnecessary breakage when given a single string,
for example. Now, __init__() checks to ensure it receives a list/tuple of
strings or IndexedPiece objects.

Closes #332
New: WorkflowManager._get_unique_combos()

This method removes duplicates in the "voice combinations" setting for a given
IndexedPiece. In the future, it can also verify the "voice combinations" setting
even more.

Related to #333
Fixed: WorkflowManager._intervs() uses _get_unique_combos()

Previously, _intervs() would do the literal_eval() call by itself. Now it uses
_get_unique_combos().

Related to #333
Fixed: WorkflowManager._var_part_modules() uses _get_unique_combos()

Previously, _var_part_modules() would call literal_eval() itself. Now it uses
_get_unique_combos() to ensure it's better.

Closes #333
Tests: Add new, hand-counted test cases (bwv77 SA vert ints)

On the way to writing a 2-gram test, I thought I might as well add some vertical
intervals tests too. There are two, both of "bwv77.mxl" with the highest two
voices, one with and the other without interval quality.

Related to #327
Tests: Add new, hand-counted test cases (bwv77 Alto horiz ints)

As in commit the previous (17bfa233f1e148fddd2dc81fc5af1b55b3fb3454), I thought
I might as well make intervals-wise tests while I'm preparing the n-grams tests.

Related to #327
Fixed: format() args order in assertDataFramesEqual()

The error message reversed what we "expected" and "actually" got, but now I
fixed it.

Related to #327
Fixedish: Remove broken "interval n-grams" integration tests

This is a first step on the way to including the hand-counted integration tests
that will replace these. I removed them before the new ones are ready because
I'm sort of eager for Travis to stop sending me emails saying that I fail.

Related to #327 (refer to discussion there)