Improvements to ListOfPieces

- removed unused rows in the internal data storage thing
- data() and setData() properly adjust for "missing" rows
- get_workflow_manager() always uses data() instead of creating a weak
  point in the abstraction layer
- hopefully only data() and setData() ever need to know about the
  mismatch between # of columns presented and in actual storage
Fixed "Filter Repeats" Setting in ListOfPieces

In get_workflow_manager() the "filter repeats" setting was only considered
if there were valid voice combinations, which was a mistake.
Ensure ListOfPieces Does parts_combinaations Correctly

Added a toPyObject()
GUI Code Does a Bunch More Things Correctly

And I rearranged stuff and added some ###s and whatever.
Modified _variable_part_modules() to Use Proper List

- the voice_combinations setting is now always a basestring of a list
- updated the tests too, because duh