this patch moves strand storage from Sequence into SeqSpan,
also when accessing sequence data from a SeqSpan that is currently
on the minus side it correctly returns reverse complemented data.
Unfortunately getting iterators that point to data thats a
transformation of currently existing data is a giant pain and
was making SeqSpan way to complicated.
So I took the easy way out. SeqSpan will now cache a reverse complement
of the region its pointing to and return iterators based on that.
Also Alphabet can reverse complement a string,
Drat, just realized that if one changes the region of SeqSpan,
the rc_seq will need to be invalidated.