Implement subgraph

@mhfrantz 

Implements the traversal subgraph step. In the Java api, subgraph() must be followed by next() to return a reference to the subgraph. We include the next(), since ultimately we have to wrap the returned subgraph anyway, and doing so in next() (or rather, the _jsify() called by next() and all other methods implemented with traversalPromiseJsifyWrap) seems to me a poor choice, as very few traversal functions return graphs.