Add get_accent_string in bogo/accent.py

It's a function to get the first accent from the right of a string.
Backup and restore accent in bogo.transform(); fix #79
Allow khuơ
Fix #78

"buouw" should become "bươu" instead of "buơu".
Introduce a strip() function in bogo.mark

Strip a string of all marks and accents.
Fix #81 (dirty)

Whenever we see the vowel to be 'oe' (ngoèo) or 'oa' (ngoáo) and
the transformation to be "o^" (add a HAT mark to the rightmost 'o')
turn the transformation to an ADD_CHAR one.
Auto gen special vowel sets in bogo/valid_vietnamese.py
Fix #82
Deprecate taojc -> taojc
Refactor process_key() in bogo/bogo.py

Refactor 2 return points into only one, add a log message at the end.
Add a gen_key_sequences script

Generate (all) possible key sequences that can lead to the given word.
Use the gen_key_sequences script to test lots of cases
Add a dictionary to alongside vi.dic with old style diacritic positions
Fix dictionary path in test/test_engine.py
Properly duplicate iterable in test/gen_key_sequences.partition()
Merge pull request #83 from lewtds/fix79

Fix a series of bugs: #78, #79, #81, #82