Decouple Lvalue<T> and Rvalue<T>
Decouple Lvalue<T> and Rvalue<T>

Decouple these classes by avoiding class inheritance. Here
this simplifies constructors and strengthens immutability
guarantees for Rvalue<T>. In addition, a good compiler will
likely generate more efficient code (e.g. no vtable).

ahorn/smt-kit,ahorn/smt-kit,ahorn/smt-kit,ahorn/smt-kit,ahorn/smt-kit