Fix Moore-Bellman-Ford for unweighted edges

Spotted an issue while adding unit tests for Algorithm\DetectNegativeCycle (#88):

~~Detecting negative cycles fails for graphs with multiple components.~~

Turns out this was actually an issue with unweighted edges, which caused their weights to be re-calculated on each iteration which was then interpreted as a negative cycle. This PR fixes this my explicitly considering a `null` weight as `(int)0` weight.

- [x] Implement Fix
- [x] 100% test coverage
- [x] Documentation / Changelog