Don't bring down the whole application when encountering a broken pipe.
Stream socket communications now implement a subset of HTTP.
 (1) use HttpByteStream to format writes to the stream socket. Results in all output writes going over HTTP.
 (2) new function call "sendReponse()" on IUserPacketHandler, for UserActionContext to call back when the action is finished. Ensures a response is always sent back over the wire.
 (3) some simple logic cases to generate simple success/error codes in UserActionContext. Currently limited based on action's success/failure. TODO: push error code generation into the Actions themselves.
Extra (simpler) test case for different timing data.
Better behavior when starting up without a membership file. Updated readme.