Endpoints can have multiple input connections but only one output

@justinvdm The reason why I took this approach where we have a `Connection` and a list of `Route`s is partly due to the `routing_entries` array in the raw data. So each item in `routing_entries` maps to a `Route` and has a `uuid`. A `Connection` is what logically groups routes for the same endpoints. As it stands now we also use `Route` instances to render arrows on top of the connection.