streams: Fix one memory leak and one formats ref issue
ast_stream_topology_create_from_format_cap() was setting the
stream->formats directly but not freeing the default formats. This
causes a memory leak.
* ast_stream_topology_create_from_format_cap() now calls
ast_stream_set_formats() which properly cleans up the existing
stream formats.
When cloning a stream, the source stream's format caps _pointer_ is
copied to the new stream and it's reference count bumped. If
either stream is set to "removed", this will cause _both_ streams
to have their format caps cleared.
* ast_stream_clone() now creates a new format caps object and copies
the formats from the source stream instead of just copying the
pointer.