Ref auto out nocopy

TEST MSVC!

The previous implementation of auto_out<T> inherited from unique_ptr<T>, which is a move-only object. In order to make AutoStile work it was necessary to make the copy construction of auto_out implicitly a move. On MSVC this resulted in build errors.

The new implementation of auto_out<T> inherits from shared_ptr<T>. In order to prevent repeated outputs, the copy constructor triggers an output commitment, rather than implementing a move.

Because lambda captures cannot use move semantics AutoStile uses AutoPacket::Put(shared_ptr<const T>, source) method to retrieve data from the slave context, declare the source to be AutoStile<Args>, as auto_out would have.