Added std::forward in order to respect move semantics in some methods.

Previously, calls to the methods assign\<C\>(...), emit\<E\>(...), and add\<S\>(...)
would fail if constructor arguments relied upon move semantics.