updates to pathlocation and graphtile for loki

`pathlocation` updates were just to make it easier for `loki` and others to make use of the object.

all of the `graphtile` updates were simply clean up items, changing `int` to `size_t`, using c++ style casts instead of c casts, using array operators on arrays instead of pointer arithmetic
I've implemented this TODO as I figured it probably is good to throw when this happens instead of just randomly reading some other memory or segfaulting