(PUP-665) Allow settings to be undefined

Setting a value to nil used to result in falling back to the default (or 
whatever came later in the lookup chain). This behavior was lost when the
settings were pulled apart into multiple classes to handle the lookup. The
error showed up in tests for stdlib that use rspec-puppet, which depended on
the "nil is default" behavior.