Replace rref + const ref overloads with one version taking by value
Make everything final that can be

Apparently gcc does use final for devirtualization.