Query Validation: refactored the query validation from the QueryValidator class (previously in the Mapper class) into individual Validator classes - this way a) they can be tested individually, b) it's also possible to express the difference between failing validation and not applying it and c) it makes the code more readable.
[Issue #585] Correcting testCanMapAnEntityWithAnAbstractVersionedParent, by splitting out the mapPackage call into a different test in MorphiaTest
[Issue #585] Reproduced the problem reported in the issue via failing tests; fixed the problem so the tests pass; refactored TestVersionAnnotation so the inner classes are in their own package for so when we map that package we don't get a whole host of unintended entities as well.