massive refactor to separate out "user" stuff, made UserPublicKey and User typesafe. refactored corenode tests to use UserContext, made start option to start a corenode, created MetaDataBlob