Pins now update targets.

- Pins now update their own targets. Currently the target owns the pin,
but this may change in future and all pins can be pushed into a sorted
list to be updated.
- Pinned edges are now identified by enums.