check for inconsistent strands in GTF parser

Adds error checking to the GTF parser to detect inconsistent strands on both the transcript level (where multiple exons/CDS can appear on different strands) and gene level (where multiple transcripts can appear on different strands). Addresses a TODO comment in the code:
```
/* XXX: an error check is necessary here, otherwise gt_strand_join() can
   cause a failed assertion */
```
and also might shed some light on #376.