Refactoring "AnnotationManager::applyConstrains" method

I've refactored the "AnnotationManager::applyConstrains" method to make more obvious what it does. I've also:

* add some more comments describing what it does
* fixing annotation inheritance test (typo error), that caused part of the method not to be covered by tests

Major theme in this refactoring is decreasing the nesting level.