Fix categorize_by_function.py

Fix #110
Change allows more flexiblity in the type of metadata that can be used to collapse counts by.
Previouly only lists of lists where allowed and now list of strings are allowed.
Code provided by @zanevled and I just implemented and tested.

Allow more flexibility in the types of
Add script level test data for categorize_by_function.py
Merge pull request #116 from mlangill/issue110

Fix and add testing for categorize_by_function.py