Added a short tandem read detector. This looks for repeated strings
between 1 and 8 bases long and returns a utlist of start..end ranges.
These may be overlapping in some situations. Eg:

$ ./a.out TGCAGAGCAGAGAGAGGGT
 1 .. 11 GCAGAGCAGAG
 8 .. 15 AGAGAGAG
15 .. 17 GGG

Compile str_finder.c with TEST_MAIN to get a command line tool.

Within Shuffle Pads this is used to identify STRs that overlap a
heterozygous indel region and then in turn to adjust the soft-clipping
of any reads that do not span that region as they cannot be relied
upon to indicate the copy number. Eg:

S1 GATCGGACGAGAG
S2 GATCGGACGAGAGAGAGAGAGT
S3 GATCGGACGAGAGAGAGAG**TCGGAC
S4     GGACGAGAGAGAGAGAGTCGGAC
S5        CGAGAGAGAGAG**TCGGAC
S6              AGAGAGAGTCGGAC

We have subseq of GAGAGAGAGAG** vs GAGAGAGAGAGAG. The first and last
(S1 and S6) sequences do not span and so we do not know which allele they
match. Specifically as the pad is at the right hand end, the alignment of
S6 gives incorrect weight to the consensus as it is stating AG when it
may actually be ** at that point.

By identifying the repeats we can soft clip as follows:

S1 GATCGGACgagag
S2 GATCGGACGAGAGAGAGAGAGT
S3 GATCGGACGAGAGAGAGAG**TCGGAC
S4     GGACGAGAGAGAGAGAGTCGGAC
S5        CGAGAGAGAGAG**TCGGAC
S6              agagagagTCGGAC



git-svn-id: svn://svn.code.sf.net/p/staden/code/staden/trunk@3723 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1
Fixed rewrite_soft_clips() to correctly trim when handling overlapping
STRs.  Previously it could reset s->left/right multiple times,
overwriting the result each time, instead of taking the inner-most
union of the values.

Also tidied up the code to not needlessly compute consensus and STRs
on the first pass.


git-svn-id: svn://svn.code.sf.net/p/staden/code/staden/trunk@3724 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1
Fixed buffer underrun.


git-svn-id: svn://svn.code.sf.net/p/staden/code/staden/trunk@3725 ba6f2710-ca9f-427c-89d3-5bf716dbc8e1