Bi-directional cachinig of transcript-protein links
Previously transcript-protein links were assumed to always be
indexed by transcript, and cached entries were allowed to have
a null
protein (meaning caching the knowledget that there is
no link for this transcript).
Now we can cache links in both directions. Both transcript and
protein are allowed to be null
(but not at the same time),
and the protein column has a new unique constraint.