Update for Python 2.7

Python 2.7 has some breaking changes:
Switch to ArgumentParser (replaces OptionParser) 
Update create_matcher to handle the fact that strings are now iterable so we have to check what matches IS before we try iterating it.