Distinguish between incoming and outgoing events.

Incoming events have the data field as a JSON encoded string, while
outgoing events send it as an actual JSON object. Very strange on
Pusher's part, but this design at least solves it for us. If the
incoming data is not JSON, simply create an IncomingEvent<string> to get
the data.
Do not include Nuget packages in git.
Adds Nuspec to solution.
Send channel name to authenticator.