Configuration itself has public c'tors. This class is "pretty much a Configuration"; it has much of the same api in terms of getter/setter methods. So in cases like this, I figured it would be better to fit in with the style of the API it was mimicking rather than make it "fully kiji style" with factory methods.

As for why these c'tors are needed -- KeyValueStores are things users should implement as well as us. The fact that it was too hard to do so in the past (mostly due to confusion around configuration) is a problem we should address. I think these are tools necessary for allowing flexible store configurations to get shoehorned into a jobconf.