Add support for private model attributes

Hi guys,

In the same way we can make an endpoint private, it would be nice to make some model attributes private as well.

It would allow us to expose a public API for clients and a private one for internal use. Currently, we don’t document private attributes because we don’t want our clients to be aware of them (they won’t see them anyway).

It could be used as well to hide development in progress API (think contract first), even if we have other ways to do it.