SxS Header Processing Updates

This solves a few problems:

## Problem 1
Probably easiest to explain by example. Previously, if we saw
```
<HD>Referring to 23(a)</HD>
<P>Content</P>
<HD>Referring to 23(a) as well</HD>
<P>Content</P>
```
we would have created two nodes associated with 23(a). When a user tried to get this SxS, they'd only see the first one (as it was the only that could be dereferenced). This patch makes the code keep track of the label it is processing, and, if that label comes up again, do not create a new labelled node. It does the same for adjacent headers as obvious children.

In other words, 23(a) will have only one associated node and it will include both headers and both paragraphs.

## Problem 2
Now we've got
```
<HD>Referring to 23(a)</HD>
<P>Content</P>
<HD>Header which for no apparent reason, mentions section 1111.23</HD>
<P>Content</P>
```

The code used to start a new analysis on the second header. This was not the intent, and we've been told by our subject matter expert that 1111.23 shouldn't ever follow 23(a). So, we also exclude "backtracking" like this.

## Problem 3
Some notices cover changes to multiple regulations. It's not safe to assume that "23(a)" is part of the regulation we care about. Instead, if we see a citation that includes a CFR part, we will assume that's the context for the rest of the citations.

Not perfect, and not as thorough as context carried between internal citations, but it should do.