Make Output<T> non-copyable

This makes the semantics of the Output easier to follow.
On Clang, client code hardly changes; use emplace instead of push, wrap assignments in std::move().
On VS2013, client code must provide move constructors for stack-allocated types that hold Outputs. This is due to VS2013 not fully supporting C++11 yet.
Closes #10