Cleanup display of language code [Dictionary Config --> Input Systems]

Default script for unlisted language is "Zyyy" for "Code for undetermined script".  Previously "unspecified" value is not valid.
Allow user to edit the language name when it's "Unlisted Language" (based on qaa language code)
Display unlisted language names in italics so user knows they can rename it
begin parsing script, region, variant per BCP 47

Reference: http://www.rfc-editor.org/bcp/bcp47.txt
Variant is a deviation, since SIL uses it as unregistered private use
WIP: updates to unlisted language GUI and parsing
WIP: more updates to unlisted language GUI and parsing

Add regex for parsing Variant tag
Lengthened Variant input box  to 25 and set the number of characters to 35
Initialize the Special dropdown based on the tag
WIP: input system refactor to Model View View Model
WIP: get more of the View fields hooked up
WIP: View Model for input systems mostly working
Add variantString to (IPA) and (Voice) part of language display name
WIP: work on Remove button
InputSystems tab working with the View Model.

Guard against existing language from being added again
publish updates from the view model to the server
Also fixed model to right to left checkbox
Fix display of input systems on Fields tab

Also added a guard of isRightToLeft when the language tag is invalid
Merge remote-tracking branch 'lf/feature/unlistedName'