Move CriteriaWalker directly into Criteria

Added Criteria.process and CriteriaProcessor interface which can be used to statefully
walk through a Criteria tree.