gh-2399 prevent casting for discriminator models when pushing to array
added tests to verify that passing error and non-error messages through middleware hooks works
Merge pull request #2498 from alabid/gh-2441

added tests to verify that passing error and non-error messages through ...
syntax fixed
Merge pull request #2481 from alabid/gh-2399

gh-2399 prevent casting for discriminator models when pushing to array
Merge pull request #2517 from elderbas/3.8.x

syntax fixed
Fix #2515: use $set key in _castUpdate
Fix #2528 and #2510
Fix #2502: use simpler solution to assign statics and methods
release 3.8.21
Merge branch '3.8.x'

Conflicts:
	History.md
	lib/model.js
	lib/types/array.js
	package.json
	test/model.update.test.js