Issue title: Review Invocation ID format
 Issue body: We want these to be per connection, but serialization could be tricky. 

cc @anurse 
 Comments: 
 Comment 0: We can actually dodge this problem by changing the protocol a bit to allow Invocations to be specified without an ID when a response is not expected. The Server to Client messages are expected to always be "non-blocking" so we can omit the invocation ID from them and get a performance gain from serializing once.
{'source': 'GithubIssues', 'repo_name_with_owner': 'aspnet/SignalR', 'issue_id': 278264868, 'repo_stars': 2672.0}