Endpoints can have multiple input connections but only one output

@andreit maybe `Connection`s should know about their associate `Route`s? Even if it means passing the component manager through to `Connection.getRoutes`, though it would probably be better if it didn't need it.

If it knew about its routes, we could keep the connection flipping and bi-directional-ifying inside `Connection`, where it belongs, instead of putting on `ComponentManager`.

Thoughts?