asynchronous post hooks
Fix bug populate array of object
Added in the ability to disable automatic validation when a model is saved.
Update guide.jade

removed an extraneous comment
Fixed query corruption
Added options corruption test
add 'domain' to reserved keywords

Actually fixes issue 1338
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. )
Add test for $out helper
Merge branch '3.8.x' of github.com:LearnBoost/mongoose into 3.8.x
Merge pull request #2049 from lbeschastny/options-corruption

Mongoose `.find()` method corrupts options object
Merge pull request #2052 from antoinepairet/3.8.x

add 'domain' to reserved keywords
Fix #2024: now supports $position in 2.6
Merge pull request #2055 from markstos/virtuals-docs

Fill in some gaps in the virtuals docs
Merge pull request #2043 from sensibill/3.8.x

Added in the ability to disable automatic validation when a model is sav...
Merge pull request #2014 from chetverikov/3.8.x

Fix bug populate array of object
Update guide.jade

Noticed an error where validateOnSave was supposed to be called validateBeforeSave.