Cleanup: Link and Names manager

Based on #7677 which needs to be merged first.

This introduces a Links and Names manager. They currently both talk to the same DB but may be partitioned later based on links needing a nested data structure and names not needing such a thing.

This is part of a two-part PR where the container graph is removed from daemon entirely. The other part is in #7771.
You should return `nil` in case of error.