instead of a boolean representing the initialization state, switch to a 3-state model with uninit, init, and failure to prevent a loop of where we try to load the properties file, hit an error, and then ensureLoaded() sees that the initialized flag isn't set and tries to load again
instead of a boolean representing the initialization state, switch to a 3-state model with uninit, init, and failure to prevent a loop of where we try to load the properties file, hit an error, and then ensureLoaded() sees that the initialized flag isn't set and tries to load again

simplifed the keySet() method by using built-in functionality of java.util.Properties
syphr42/prom