Improved equals() and hashCode()

equals was inaccurate, leading to errors in specific scenarios. To be specific:

A job calling to different flows which in turn call the same subjob ("prepare-environment") in our case using the same index would result in missing entries in the buildgraph.

equals is now based on name and buildnumber, hashCode is based on name.