Add support for hidden keys

Very simply, this makes it so any key that begins with a . is not returned when a request for a list of keys is done. This makes these entries hidden and a client must know the exact key name to access it.

This can be used to implement some simple security semantics (though any secure values stored in hidden values should also be cryptographically authenticated).