scilib/lsqmdl.py: rework how "X" values are handled

The "X" portion of the data that we were using was useless for certain kinds
of models, namely ones that didn't involve continuous input values. Really,
the "X" data aren't the Model's business in the generic case; if the model
function can take extra arguments, there's no one-size-fits-all approach
to handling them.

I thought about removing the "X" argument altogether, but it's very useful to
create a "modelfunc" result that fixes the model function at the best-fit
parameters while allowing certain other arguments (i.e., "X") to vary. So it
looks like we're inexorably driven toward the "foo (func, args=())" model in
which the model function may take extra arguments, but we can fix them at
specific values during the fitting process.

This is another lightly-tested change but once again I'll fix stuff up if it
breaks.
scilib/lsqmdl.py: update ComposedModel for enlightened free-param model

I think it should all work ...