Close tags that are not "aggregates"

This means closing tags that are immediately followed
by a "value" and have no mentioned closing tag anywhere else
in the file.

Here are the gory details of what was going on.

Take this simplistinc input document:

<OFX>
  <ID>1
  <ORG>test</ORG>
  <NAME>dave
</OFX>

Beautiful soup fixes this like so which "works" but is wierd:
<OFX>
  <ID>1
    <ORG>test</ORG>
    <NAME>dave</NAME>
  </ID>
<OFX>

Preprocessing fixes the end tags like this first:

<OFX>
  <ID>1</ID>
  <ORG>test</ORG>
  <NAME>dave</NAME>
</OFX>

Then Beautiful soup does not munge the structure…
<OFX>
  <ID>1</ID>
  <ORG>test</ORG>
  <NAME>dave</NAME>
</OFX>

NOW!

Take this fake input document for example (based on real data):
<OFX>
  <DTASOF>9999
  <INVBAL>
  <BALLIST>
    <BAL><NAME>Net<DTASOF>12345</BAL>
    <BAL><NAME>Gross<DTASOF>4535345</BAL>
  </BALLIST>
  </INVBAL>
</OFX>

beautiful soup does crazy things like this:

<OFX>
  <DTASOF>
    9999
    <INVBAL>
       <BALLIST>
         <BAL><NAME>Net</NAME></BAL>
       </BALLIST>
    </INVBAL>
  </DTASOF>
  <DTASOF>
    12345
    <BAL><NAME>Gross</NAME></BAL>
  </DTASOF>
  <DTASOF>
    4535345
  </DTASOF>
</OFX>

This is not close to the original structural intent of the document and makes certain classes of DOM based matching impossible.
Bug fixes

- backwards compatible case insensitive re matching modifier
- tags with a '.' in it doesn't blow things up (I found this
  in an AMEX statement response)
Merge pull request #45 from captin411/fix_closing_tags

Close tags that are not "aggregates", which tricks BeautifulSoup into parsing the document more correctly.