Refactor AssetStore::openAsset to allow intercepting and re-routing the request to Router
[lib/weak_fn.hpp]External binder-helper to create weak_fn for binding.
[bithorded/router/asset]Hookup signal-notifications through weak_fn to hold reference to Forwardasset while callback-function is active..
[bithorde/router/asset]Implement real ReadAsset-subclass for UpstreamAsset to hold self-reference while running callbacks.
Avoids problems when callbacks are destroying objects.
CA-CHING!
[bithorded/cache/manager]Fix debug-linking-message.
[bithorded/store/assetstore]Change link() to update_links() which also purges possibly old links.
[bithorded/store/asset]Allow opening READWRITE or READ-only.
[bithorded/cache]Link asset to ids received in so partial cached assets gets used.
[bithorded/cache/asset]Render upstreams inline into inspection-view.
[tests/test_random_read]Verify cache-consistency in various non-linear and non-aligned read-patterns.
[bithorded/source/store]Refactor some stuff.
[bithorded/cache/asset]let write() actually return bytes written.
[bithorded/store/asset]Tweaked can_read().
[bithorded/cache]Don't try to open cached asset if cacheDir isn't configured.
[bithorded/cache]Provide inspection for cache.
[python/bithordetest]Factor out socket-fetch() and push() to allow subclasses to override. (I.E. provide mock-encryption for testing)
[lib]Move out state-handling to Client.
[bithorded/cache]Optimize disk-I/O by lazily-creating new cached assets.
[lib/random]Add code for secure random byte-arrays. (akin to urandom)