Initial work on Strategy.

A Strategy is the replacement for "wrapper" implementations in TinkerPop2.  It removes the decorator pattern of wrapper and utilizes a strategy pattern to plug features into the graph.  Graph implementations will need to directly support Strategy.
Move SequenceStrategy to its own class
Merge remote-tracking branch 'origin/master' into wrapper
Add accessors for PartitionGraph settings.
Renamed Strategy to GraphStrategy.
Altered the Graph interface to include the Strategy interface.
Removed unecessary imports.
Add comments.
Added javadoc.
Add getPostAddVertex implementation to SequenceGraphStrategy.
Add getPreAddEdge to GraphStrategy.

Used the javatuples lib so that GraphStrategy could normalized to Function<T,T>.
Add getPostAddEdge to GraphStrategy.
Changed Function<T,T> to UnaryOperator<T> in GraphStrategy.
Add getPostAddEdge to SequenceGraphStrategy.
Renamed test.
Get SequenceGraphStrategy working properly with UnaryOperator.
Refactor the SequenceGraphStrategy.

Extract the function that computes a new UnaryOperator from the sequence of strategies.
Change default implementations in GraphStrategy to use UnaryOperator.identity() instead of f->return f
Add pre/post remove strategies for Vertex.
Rename test.