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 would suggest `ValueError` for the dimension ones, and `TypeError` for the "model must be callable".  That's most consistent with what we do elsewhere (and what numpy does for dimensionality issues)