Use return values instead of out parameters

Using normal return values instead of out parameters makes functions
simpler and more natural to use. Due to return value optimization (RVO)
normal return values also shouldn't be any less efficient than out
parameters.

The out parameter might even need a default constructed object that can
otherwise often be avoided:

    Matrix3cd tmp;
	 func(tmp);

When func() simply returns the matrix there is no need to first
construct an empty tmp object:

	 Matrix3cd tmp = func();
Merge pull request #1 from sth/remove-outparams

Use return values instead of out parameters