Fix "capture by reference" for model expressions.
This should fix "extranous copies of copies of copies ... " of discrete function as well as forcing models to be captured by value, and anything derived from BindableGridFunction to be captured by value, too. This also enable constructing of discrete functions inside expressions, as those will be captured by value (rvalue references are detected) and enable to caputure pre-existing objects by reference (injection of parameters).