Client node work
Bifurcates node stores between the local (ServerNodeStore) and remote (ClientNodeStore) implementations.
Fleshes out the "nodes" implementation with wiring for loading client nodes from storage.
Adds a dynamic loading mechanism for loading dynamically loading behaviors and endpoint definitions by name.