GraphFilterStrategy would be a TraversalStrategy for GraphComputers. It will inspect the Traversal and decide the computer.vertices(...).edges(...) to use.
1. If the traversal is part of an OLAP chain, don't apply strategy.
2. If the traversal is persist edges, then don't edges(...) or vertices(...).
3. If the traversal is persist vertex properties, then don't do vertices(...).
Shouldn't be too difficult. Basically looking for:
1. VertexStep labels for edges.
2. HasStep containers for vertices and edges.
From there, we can get fancy with outE().has("stars",gt(4))-style edges(...). However, basic element-label based filtering should be easy.