added SideEffectCapStep with respective SideEffectCapOptimizer that checks if the end step of a traversal is SideEffectCapable. If so, caps the traversal. This is much better than having these as methods (in fact, CountStep is coming next. Just realized.) Now these will work over Gremlin OLAP.