Issue title: Pass by reference in IPropertyManager38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5setProperty(string, T)
 Issue body: The code for `IPropertyManager38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5setProperty(const string&, const T)` should accept the value by reference rather than by value. This will stop a potential truncation error which may be what is breaking polymorphism.

 Comments: 
 Comment 0: This issue was originally [trac ticket 1311](http://trac.mantidproject.org/mantid/ticket/1311)

{'source': 'GithubIssues', 'repo_name_with_owner': 'mantidproject/mantid', 'issue_id': 84674275, 'repo_stars': 182.0}