Faster -[KPAnnotation calculateValues]

Warning: this pull request is written on top of code from two previous currently open pull requests. 

Please, merge them one by one starting with the oldest one: #21, then #22, then this one: #23.