Modeling/handle more out than in

This PR fixes an issue raised by @nden [here](https://github.com/astropy/astropy/pull/3231#issuecomment-67691809), and iterates on a suggested fix at embray/astropy#12 so as to explicitly support this case.  This still makes certain assumptions about the design of the model evaluation function.  The main assumption is that all outputs from the model's `evaluate` function will have the same shape as would result from performing some Numpy ufuncs involving all inputs and parameters to the model.  In other words, the shape of all outputs are assumed to be the same, which is the broadcast shape of all inputs with all parameters.

This still suffices for most cases (particularly where all inputs/parameters are just scalars).  This was a known issue, but hadn't been brought up before due to there not being any *built in* models in Astropy that have this format.  However, the compound modeling feature [#3231] makes it easier to make such models, and this fix should is good enough for most cases involving compound models as well.