Codegen: Use prefix as the function name in simple cases

This is on top of pr #7824, its the single commit a22f8d0 with commit msg as follows

Allow an abbreviated call to codegen:
codegen(2*x*y, "F95", "foo")
rather than requiring:
codegen(("foo", 2*x*y), "F95", "foo")

Also supported is:
codegen([x, y, z], "Octave", "foo")
which abbreviates:
codegen(("foo", [x, y, z]), "Octave", "foo")

This is particularly nice on Octave where the filename (prefix) should
match the function name.

Note if you pass multiple (name, expr) tuples, this abbreviation is
not supported:

codegen([("foo", [x, y]), ("bar", 2*x)], "Octave", "foo")