Fixed model.remove ignoring callback

I don't know if this behavior was intended, but it's wrong. 
If I call .remove on the same model twice for whatever reason, second call will never execute callback, which will break execution flow.
added VersionError

closes #1071
centrally expose Mongoose Error types
update test refs
more sensible behavior for second call of .remove

just call Promise.addBack with new callback. No need to actually remove model twice.
returned missing newline
Merge pull request #1210 from daeq/patch-1

Fixed model.remove ignoring callback
Merge branch 'master' of github.com:LearnBoost/mongoose
refactor errors exposure

MongooseError base class: mongoose.Error

All MongooseError subclasses: mongoose.Error.xxxx
tests; added for #1210
Update CONTRIBUTING.md
docs
website; updated quick start
website; update getting started
website; update models page
docs; add collection option to schema api docs

closes #1222
Merge branch 'master' of github.com:LearnBoost/mongoose
update; driver to 1.2.0
fixed; setting virtual to object

closes #1154
add model() error types