added BranchTest steps, removed the null argument methods of branch() (now there are only two methods -- predicate and map). Changed the generics of BranchStep so that the MapFunction need to start with S. Added branch() to Vertex and Edge.