Fixed #2274

This PR is a quick fix for #2274. I use the `custom_model` function to create an `astropy.modeling.Model` instance internally, when the model is a an ordinary function. Furthermore I added a check, that the `model` argument is callable.
@cdeil, @eteq 
I think in all of the above cases the `raise Exception` should be changed to something more specific.  `ValueError` if nothing else.