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.
Merge pull request #22 from scott-linder/master

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