Fix the checking of units for compound models.
Fix the checking of units for compound models.

The issue was that the compound model called evaluate directly on all submodels without going through __call__ which means that prepare_inputs was being skipped. The unit validation was done inside prepare_units, so the fix is to separate out the validation of the units into a dedicated method. In addition, _model_evaluate_getter previously did not instantiate models when the compound model included a model class instead of an instance and evaluate was a class method - however we definitely need to always instantiate the model since e.g. input_units can be defined as an instance property.
DougBurke/astropy,MSeifert04/astropy,astropy/astropy,lpsinger/astropy,DougBurke/astropy,bsipocz/astropy,dhomeier/astropy,stargaser/astropy,aleksandr-bakanov/astropy,astropy/astropy,pllim/astropy,dhomeier/astropy,mhvk/astropy,bsipocz/astropy,DougBurke/astropy,mhvk/astropy,astropy/astropy,mhvk/astropy,larrybradley/astropy,stargaser/astropy,bsipocz/astropy,larrybradley/astropy,stargaser/astropy,saimn/astropy,StuartLittlefair/astropy,astropy/astropy,dhomeier/astropy,saimn/astropy,saimn/astropy,larrybradley/astropy,pllim/astropy,stargaser/astropy,aleksandr-bakanov/astropy,aleksandr-bakanov/astropy,MSeifert04/astropy,dhomeier/astropy,saimn/astropy,astropy/astropy,StuartLittlefair/astropy,lpsinger/astropy,saimn/astropy,DougBurke/astropy,StuartLittlefair/astropy,StuartLittlefair/astropy,pllim/astropy,larrybradley/astropy,mhvk/astropy,MSeifert04/astropy,dhomeier/astropy,pllim/astropy,StuartLittlefair/astropy,larrybradley/astropy,lpsinger/astropy,pllim/astropy,aleksandr-bakanov/astropy,MSeifert04/astropy,bsipocz/astropy,lpsinger/astropy,mhvk/astropy,lpsinger/astropy