Add equitable_color based resource allocation and assignment
In NetworkX there exists a colouring strategy called equitable_color(graph, num_colors).
https://networkx.org/documentation/stable/reference/algorithms/coloring.html
Right now greedy_color(graph) is used and works fine.
However, in some cases greedy_color will fail to reach the desired amount of colors possible.
Since #282 (closed) adds the possibility of constraining port accesses or since the user could edit their own schedule for a certain amount of memories, it should be possible to specify the amount of colors to try for. If the coloring algorithm fails to do so, the user should be warned.