added failing test for custom tags as strings
adding getLeftValue and getRightValue to @templaterstate, and
@templaterstate.offset

The @offset makes it possible to do the following:

The replacexmltag doesn't depend on Docutils.tags.start and .end anymore

The getLeftValue method retrieves the left part before the start of the
tag, eg if one xml node contains: "Hello {name}, how are you"

Then :
 * getLeftValue will return "Hello "
 * getRightValue will return ", how are you"
added trail and trailSteps to know when a tag starts when it has
multiple characters

When for example, the tags are "[[" and "]]"

The text is "Hello [[name]]"

Because the startTag '[[' is of length 2, our trail will be of length 2
too.

Our trail will be: 'H', then 'He', then 'el', then ' [', then '[['.

When the trail is '[[', we trigger the starttag method

The startTag will be called on the second [, so we need to keep track of
the position of the first [, which we do on the trailSteps.

trailsteps[0] is the position of the first '['
trailsteps[1] is the position of the second '['

because we want to have the first '[' to be replaced, we will place the
@currentstep at the trailsteps[0] position