Modified the payload response for negotiate to be a dictionary instead of an anonymous object

- By being a dictionary the hub pipeline will then be able to modify/add
to the data

#1637
Changed the variable name payload to response
Added the BuildNegotiate method to the hub pipeline module

- This involved adding it to the hub pipline invoker and also adding a static method to the PersistentConnection to be called by the pipeline
#1637

Conflicts:
	src/Microsoft.AspNet.SignalR.Core/PersistentConnection.cs
Added HubPipelineFacts to test BuildNegotiate

- Added tests to verify Add/Modify/Delete tests for the BUildNegotiate
method.
- Also generalized the test file name so that it can be used to test the
other hub pipeline methods

#1637
Moved the BuildNegotiate piece to the HubDispatcher

- This also involved undoing the changes to PersistentConnection.cs
- Also removed the need for the HostContext to be passed through
#1637

Conflicts:
	src/Microsoft.AspNet.SignalR.Core/PersistentConnection.cs
Modified the build negotiate to be an action so it's inner func does not return a value

- For code review comments
#1637
Fixed HubPipelineFacts to use new async read as string
Addressed code analysis issues