fix: VisGraph.update() and .shortest_path() no longer updates graph
fix: VisGraph.update() and .shortest_path() no longer updates graph

For point p not in VisGraph.graph, calling VisGraph.update() or
.shortest_path() would add p to VisGraph.graph. As graph holds
the obstacle polygons, it should never be changed.

The bug was caused because graph is a defaultdict(set). Calling
graph[p], even in a for loop or a if statement, will add p to
the defaultdict. I had previously dealt with this by implementing
my own __getitem__ method in Graph, but in method get_adjacent,
calls were on self.graph[p], i.e. bypassing my __getitem__
implementation. Fix is just change to self[p]!

Note that the other methods of Graph that need the defaultdict
__missing__ functionality all call __getitem__ directly on the
defaultdict. Where that functionality is not needed or creates
problems, use self.__getitem__.

Resolves: #9

TaipanRex/visibility_graph,TaipanRex/pyvisgraph