major refactoring of workflow tests and organization of workflow code

This addresses #698 and #699.

Specifically the tests have all been updated to use the test data created for #582, which is now accessible via ``qiime.test. get_test_data()`` and ``qiime.test.get_test_data_fps()``. This test data should be integrated more thoroughly throughout QIIME as it has already been useful for identifying some new issues. This commit also includes some additions to that test data which were necessary to support all of the workflow tests.

The workflow library code and tests has now been split apart into separate files. This makes it a lot more manageable, which will support a more general refactoring of the workflow code in the future to make it easier to develop new workflows. 

Note: I used [PyFlakes 0.6.0](https://launchpad.net/pyflakes) to identify unused imports and missing imports on all of the new files in ``qiime/workflow/`` and ``tests/test_workflow/``. This was really handy for cleaning up the code. It's similar to [PyLint](http://www.logilab.org/857), which @jrrideout mentioned in the past, but doesn't provide information on style. The PyLint download link wasn't working for me this morning, so that led me to find PyFlakes.