GenericHit: Changed "query_length" method behaviour to be
consistent with hit "length" method, meaning that the query
length is set to 0 if its undefined (like in Hmmer2 reports).
Also removed the throw from "logical_length" (since query
length will no be undefined now).
Hmmer2: Added the recovery of the indentical and conserved residues
from the alignment line when available, so now "num_conserved"
and "num_identical" work. Added more tests to check them.
Hmmer2: Fixed a bug where "$hsp->{QUERY_LENGTH}" and
"$hsp->{HIT_LENGTH}" values where calculated wrongly in
"end_hsp" from SearchResultEventBuilder. For hits where
query/hit length is unknown (like HMMER), the values
were calculated using the full length of the alignment
without deducting the gaps. In the test file, added a
consistency check for Query Length and Hit Length.
Hmmer2: Fixed a subtle bug where values set by a first HSP, that
were not defined in the second HSP (like "$hsp->{QUERY_LENGTH}"),
were not recalculated but copied over (modified a little
"t/data/hmmpfam.out" to highlight this in its Query length
consistency check). Now "end_element" method from hmmer2.pm
flushes the corresponding values from $self->{_values} buffer
to avoid this. Tests pass.
Hmmer3: Added more query/hit length consistency checks in test file
and found in Hmmer3 the same buffer bug than Hmmer2. Fixed
"end_element" method from hmmer3.pm to also flush the corresponding
values from $self->{_values} buffer.