[tsl:concurrency] Add LLVM-style type casting to AsyncValueRef<T>
[tsl:concurrency] Add LLVM-style type casting to AsyncValueRef<T>

+ cleanup ref_count header and consistently use DerivedFrom helper

Coming-next: for rvalue references we can do Cast and DynCast by moving RCReference and save wasted AddRef/DropRef
