Allow passing in the storage layer as a variable.

Short and sweet: Let you pass in a storage layer.

It defaults to using the storage layer set in configuration if you don't pass anything in. This can be unhelpful, since you silently get an unexpected storage layer if you forget to include the key on one invocation, but it maintains backwards compatibility.