crypto_stream_salsa20() doesn't support overlapping input and output regions, except when they are aliases.
Encrypting in-place and storing the tag separately is a very common need. Instead of forcing people to do their own cuisine, let's provide simple variants of the _easy interfaces to do that.