Tidy up app.model() to remove duplicate & recusrive call

/to @bajtos 
/cc @ritch 
This is changing the behaviour of `app.model()`. Before the patch, `Model` was not pushed when `config.public==false`.

I can't tell which way is better so I don't mind this change as long as we are aware of the ramifications.