add method converting language string to 2char code
passed language string could be either other code or full language name
(cherry picked from commit 4b9cc5daded526d70ec2def1fae4aeedb83bb65f)
Add doxygen comment for new methods in LangCodeExpander.h and change param order.
These are ConvertToTwoCharCode(...), CodeToString(...) and ReverseLookup(...)
Change parameter order of ConvertToTwoCharCode(...) to be in line with the other convert methods.
Adapt ConvertToTwo/ThreeCharCode methods for region code conversion.

Adapt ConvertToThreeCharCode to additionally check region codes.
Adapt ConvertToTwoCharCode to additionally check try xbmc specific language names.
[Python] Extend xbmc.getLangauge to return various language formats.
The signature is String getLanguage(int format = CLangCodeExpander::ENGLISH_NAME, bool region = false).

The possible formats are:
ISO_639_1: three letter code (ISO 639-2/T or ISO 639-2/B)
ISO_639_2: two letter code (ISO 639-1)
ENGLISH_NAME: full language (in English)

The default value is ENGLISH_NAME.

Additionally the region of the language setting can be retrieved.
The region is appended to the language.
For example:

Language-Region: Portuguese (Brazil)-Brazil
Language 2-Char-Region: pt-br
Language 3-Char-Region: por-bra