Changes the port module by introducing a fully abstract "Port" interface and then an "AbstractPort" abstract class that implements the Port interface, which is in line with the class diagram.
Renames many functions such as "connect_port" to "connect" and "connect_signal" to "add_signal" for better useability and to fit with the class diagram.
Moves "AbstractGraphComponent" to the graph_component module.
Also renames functions such as "connect_source" to "set_source" in signal.
Refactors Port ID to Port Index as in #49 (closed)
Move AbstractOperation implementation to the operation module.
Mode BFS implementation from the utilites module to the operation module to solve cyclic imports.