Some minor changes to support set operations.
Merge branch 'master' into sets
Changed some commented code.
Broke up grep_for().

I'm attempting to seperate the concerns within this method. Hopefully I
can refactor this code to simplify adding set operations later.
Modified get_context() to allow passing in a tree to append to.
Refactored some of the set ops code to make it cleaner.
Changes to CLI parser.

Mostly rewriting the commented sections for controlling set operations,
but I also added groups.
Implemented intersection op
Implemented union op.
Implemented the difference (refered to as 'exclude') set op.
Changed a param name in count_lines().
Implemented symmetric difference (refered to as 'diff') set op.
Enabled flags for performing set operations.
Refactored set ops to use common base function.
Moved count_lines() to greptree.py + added a few docstrings.
Rewrote GrepTree.touch(), used in GrepTree.append().
Cleaned up GrepTree.append(), added touch_path().
Bumped version to 0.5a