Annotation refactor

Addresses issue #2329

The `xyann` and `anncoords` properties (if people think that is a good thing to rename them to) should probably be pushed up to the `_AnnotationBase` level.