Extend viewer api with 'onAnnotationShow' callback.

Uses the same setup as the existing
onAnnotation[Save/Delete/Change] callback events.

Moved the viewer related code from the annotation object
in lib/annotation to a new configureActiveAnnotation method on
the viewer in order to encapsulate the behavior. The callback is
fired from there.
Per annotation saving support.

The annotation_editor now registers a callback for the new
'onAnnotationShow'.  It then checks the account to determine if the
given annotation should be editable or not and then hides/shows the
editing controls using the new DV-canEdit css class.
DRY up the ajax calls on the editor.

Since they all basically did the same thing, this moves them into a
new _performAjax method.