Fix memory leak related to stream associated with data product that is left around

* Fixes the creation of association between data product and its associated stream and stream definition.
* Cleans up stream associated with data product in delete_data_product.
* Adds test code to verify that the stream is indeed cleaned up when delete_data_product is used.