Refactor valid_vietnamese.py

- Convert the consonant, vowel lists into sets and give them better
names
- Use set operations
- Create a SoundTuple namedtuple to refer to each sound componant by
name
- Create is_valid_string utility function
Remove "env" statement at the first line

to avoid the error of "non-executable-script" by rpmlint.
Add invalidation rule for 'ic'
Add more manual tests for Vietnamese validation
Invalidate 'o' + 'ch' combinations
More Vietnamese validation tests
Comment
Rewrite the validation code for words with 'ch' ending
Invalidate c, p, t, ch ending with NONE tone combinations
Invalidate ơ + c combinations
Fix imports
Fix comment and refactor code position in valid_vietnamese.py
Add validation rule for words ending in 'nh'
Spelling error in comment
Use set literal in valid_vietnamese.py
Use map() instead of list comprehension in valid_vietnamese.py
Refactor valid_vietnamese.py
Simplify the vowel sets: remove NON_TERMINAL_VOWELS
Move valid_vietnamese.py to validation.py
Move ibus_engine.reset_engine()