clarify primary sequences, startJoin and endJoin

Allow variantID to be null in VariantJoinLocation.
For primary variants have startJoin.variantId and endJoin.variantId == null
For variants attached at one end, require this to be the start not the end (i.e. can't have null start and non-null end).
This then supports traversal of all variants by following startJoins from primary variants.