Added @GremlinPipeline.cast@ to allow pipeline end type to be reset.

Same change as in pipes, but doing this in gremlin also allows the the pipeline to be continued. e.g.

```java
//This should compile without warnings
pipeline.as("person").out("knows").has("name", "josh").back("person").cast(Vertex.class)
    .filter(new PipeFunction<Vertex, Boolean>() {
    @Override
    public Boolean compute(Vertex argument) {
      return true;
    }
});
```