Make Anchors simple data structures (nstead of methods)

The original idea behind Anchors was always that they are only a piece of data,
which can be used to create a highlight, and which are calculated by the anchoring
strategies.

Different types of anchors are supported.

Out of convenience, anchors were originally implemented as objects.

The only behavior which the different types of anchors had to implmenet individually
was the actual creation of the highlight. (Because different types of anchors are
usually represented by different types of highlights.)

However, with the generalization of the highlight creation, this is no longer the
responsibility of the anchors themselves; now Annotator looks at the type of the
anchor, and calls the registered highlighers to see if they can create a highlight
out of this anchor.

This has removed the last piece of intelligent behavior from the anchor
implementatations, so there is no point in keeping them objects now.

(And annotator is looking inside the objects to make decision on their internal
type field, whch is not proper object-oriented design anyway.)

Therefore, I have changed the implementation: I have moved all the code back
from then abstract Anchors class to Annotator class, and changed the anchoring
strategies (that create the anchors) to output simple data structures.

This also makes it easier to introduce new anchor types; now you don't have
to create a new class; you can just start to return the new type in your
anchoring strategies, and accept the new type in your highlighter implementations.