Add the ability to specify a Charset when reading property files

Starting with Java 1.6, Properties has a .load() method accepting a Reader as an
argument. By default, the method using an InputStream as an argument will try
and decode the file using ISO-8859-1.

Change the code of .loadProperties() to use a Reader instead, and add the
ability to change the Charset used when reading files.

---

FURTHER NOTES:

* More generally, is the code written for 1.6 or 1.7? If 1.7, a ton of `Objects.requireNonNull()` can be added to setters.
* The regex to detect whether the original file has a locale specification is broken (the dot of ".properties" is not escaped, but that is only one problem).
* Why is `bundles` only initialized in `discoverBundles` and not at init time?
* Others...