Improve the art of expression building in python. #4154

This commit provides greater capacity to manipulate and build
expressions from python.  Includes implementation, unit tests, and
documentation.

Improvements include:
- Exposing flatten and matching primitives in ClassAds.
- Overload operators for ExprTrees, allowing multiple expressions to
  be composed together from python.
- Expose the sameAs method for ExprTrees.
- Expose ClassAd expression operators which do not have a python
  equivalent.
- Allow ExprTrees to be evaluated to bools, making them more natural
  to use from 'if' statements.