neighborhood methods

Hi!

Following last week's discussion, I have created a `foreachEdge` method in the `Graph` class that would allow a vertex to access its out edges through an Iterable.
See `TestForeachEdge` for an example of how this would look like.
The current implementation won't work because I haven't properly taken care of the return types, but I'm creating this PR in order to get some early feedback on the method.
What do you think?