is_[non_]empty_model returns TRUE if the
input is an [non] empty model. (has_terms is used
to determine that a variable is a model object.) The
model is considered empty if there are no factors and no
intercept. The assert_* functions return nothing
but throw an error if the corresponding is_*
function returns FALSE.