Add checking of Gap GFF3 attribute

This pull request adds simple checking of the GFF3 Gap attribute. The following is checked:
- correctness of the edit operation string (i.e. its codes and lengths)
- the length of the aligned string on the reference sequence must match the length of the feature the Gap attribute belongs to
- if the feature is_a protein match (or a subtype thereof), then edit operation lengths will be counted as codons, and the 'F' and 'R' frameshift operators are allowed (for nucleotide matches, they are disallowed!)  

All checks will only be done if a type checker is given (as it must be determined whether a the feature is a protein match or not).
Please briefly review this code, e.g. @gordon. Closes #170.