Note that virtual properties are applied before other validation

So, it safe to use a virtual setting to set underlying required fields.
Combine the intro and conclusion for Virtuals, and provide some examples.

It's better to summarize the feature in the introduction. Thus, if you
know whether you need to read the rest of the section or not.

Some brief examples were added to intro paragraph to help explain the
common use-cases.
If you are learning about Virtuals, you should also know about the 'toObject' behavior.

So a brief mention is added to the Guide.
Clarify that you can't use virtual in queries are field selections.

( It wasn't clear that they couldn't be used for field selection until I checked. )
Merge pull request #2055 from markstos/virtuals-docs

Fill in some gaps in the virtuals docs