Change protocol by introducing the requesters and servers list for loop prevention.
[bithorded/lib]Add subscribable<T> template which implements a value wrapper which can monitor for changes and notify listeners.
Big loop-prevention refactoring of the protocol.
[tests/proto/loop_prevention]Check backwards compatibility by ensuring the last request-id is the initial request.
[bithorded]Drop old loopfilter-solution in favor of the new routing-code.
[bithorded/server/client]Debug-print bind-requests in all cases.
[bithorded/server/asset]Break out request-merging into UpstreamRequestBinding.
[bithorded/server/asset]Move IAsset and UpstreamRequestBinding NULL-shared_ptr instances to static members in class.
[bithorded/server/asset]AssetBinding: check for NULL before dereferencing.
[bithorded/router]Avoid endless request-loops by letting our own random sessionId() stay blacklisted for a while.
[bithorded/asset]Optimize avoiding asking requester, by using the AssetRequestParameters structure.
[bithorded]Refactor status-update logic. Use a predefined AssetStatus-message to convey status-changes, and Subscribable to avoid null-changes. (I.E. sending assetstatus to connected client when a new client joins the Session)
[bithorded]Re-implement deadline-handling.
[bithorded/router/asset]Detect loops also on incoming responses, and break them by dropping the upstream.
[bithorded]Finally, implemented the Reconnect-asset-feature.