Added basic language selector support.

This brings in support for displaying the language selector:
* Horizontally.
* Vertically.
* Horizontally from right to left.

It also hides the language selector heading, if any, by default as that's what we've always done. Although I'm not 100% that this should be the default behaviour.

Another layout we could support could be a multi-column layout, although I'm not sure how that would best be coded.