Let user connect components with lines

Seeing quite a few cases here:
  - deselection (so `newValue` is falsy)
  - a component being connected to itself (so `oldValue === newValue`)
  - a selection happening, but no previous component selected
  - a selection happening, but `connectPressed` is falsy

Can we test these (and others I might have missed)