removed un-needed legacy code (_AnnotationBase._get_xy_legacy)

All of the work done in _get_xy_legacy can be done via
transforms returned by _get_xy_transform.

Removed the sole usage of this function and the function.
re factored `_AnnoationBase` to push keeping track of there the
secondary object is to the sub-classes.

Added properties to maintain back-compatibility

added properties to replace xytext and textcoords (xyann, anncoords)

properly deprecated `textcoord` and `xytext` in favor of `anncoords`
and `xyann`.
pep8 fixes
added test for Annotation.set_position
Merge pull request #2351 from tacaswell/annotation_refactor

Annotation refactor