Enhancing Locale determination in other places

Some comments to accompany the PR:

* A number of enhancements throughout.

* Languages - I spotted an NPE on allLangs but I'm not sure I understand its purpose as getLocalisedCommonLanguages() which was previously the static initialiser derives first from iso639 then from iso639full. Further more, do we not want to read from the  iso639full straight away?

- ReadingsBook - changes just locally on construction - so limited benefit. I'm a bit confused at what it's trying to do, so I'm not sure if there's going to be gain in trying to remove the various strings that are instantiated from their singleton scope.

Translations - to be Localised, not sure how much of it as I need a bit of explanations to speed up the process. Presumably getCurrentLocale() can just be changed to be based on the Provider-based one. Is originalLocale supposed to be the originalLocale all the time? If so, then the Provider-based Locale probably isn't appropriate here (or is just for the once when it gets initialised)