SmspTpScAddr: fix SMSP record length and alpha_id padding
apply_val() was re-encoding the SMSP with the minimum total_len of 28, which produces a 28-byte body with no alpha_id field. After a DER round-trip, the profile machinery re-pads the body to the original record length using the template's fill pattern, which may not be 0xFF. Those non-0xFF fill bytes end up in the alpha_id area, and GSM 7-bit decoding then fails with a KeyError when the modified profile is read back.
Fix by: - setting alpha_id = '' so the field is present but empty - setting f_smsp.rec_len = 42 (28 fixed bytes + 14 bytes of alpha_id padding) so the re-encoded body carries 0xFF-padded alpha_id space and the efFileSize in the fileDescriptor stays consistent - passing total_len=f_smsp.rec_len to encode_record_bin() so the alpha_id area is actually padded to that length
saip: add numeric_base indicator to ConfigurableParameter
By default, numeric_base = None, to indicate that there are no explicit limitations on the number space.
For parameters that are definitely decimal, set numeric_base = 10. For definitely hexadecimal, set numeric_base = 16.
Do the same for ConfigurableParameter as well as ParamSource, so callers can match them up: if a parameter is numeric_base = 10, then omit sources that are numeric_base = 16, and vice versa.