A general theory of age-length keys: combining the forward and inverse keys to estimate age composition from incomplete data