The node properties request is now its own object with a
deserializer to avoid custom decoding. Refactored cluster store
to return immutable collections and consolidated a lot of common
code into their own methods.