Send entries in packets when they get big

SignalR has a practical message limit of around 32 KB, so when the
serialization of an entry gets that big, break it up into packets.
Remove 'Concurrent' from ConcurrentEventDictionary

* It is now based on Dictionary, and uses ReaderWriterLockSlim to
  protect concurrent actions, instead of delegating to Concurrent. Also,
  added virtual hooks for throwing the right exceptions, which are
  overriden in JournalData so that normal Dictionary operations on it
  should never throw exceptions.
Fix entry-sending code

* Fix a bug causing summaries after the first to be ignored.

* Fix a bug causing journal end entries to have the same ID as the
  journal start entry.