Add a streamulus::reference wrapper for objects by reference

noncopyable objects can't be streamified since the transformations invoke
the copy constructor. We wrap a reference to an object inside a simple
struct and streamify that, with the copy constructor passing the reference
through.

Note, the wrapper makes use of variadic templates to save having to
'know' the types of args required by the wrapped function () operator.

for use with MSVC, the Nov 2012 CTP must be installed, or a later version
if available. The CTP is available from
http://www.microsoft.com/en-us/download/details.aspx?id=35515