Variant: add id field getter

closes #107
"has no value" and "missing" are the same thing. The BCF spec says that in a type descriptor byte, "A size of 0 indicates that the value is MISSING", and htslib encodes id fields equal to "." using a type descriptor byte with size 0:

        } else if (i == 2) { // ID
            if (strcmp(p, ".")) bcf_enc_vchar(str, q - p, p);
            else bcf_enc_size(str, 0, BCF_BT_CHAR);