Sam: implementation of mate_alignment_stop()

* fix off-by-one bug on Sam::alignment_stop (it was reporting the base after the last inclusive base, contradicting the docs)
* refactor cigar operator parsing routine from SamBuilder to Cigar class for mutual use
* add consumes_read_bases and consumes_reference_bases as static methods to the Cigar class
* add tests to the new API and all new functions

This sets the base for issue #6
Restore deleted documentation for cigar_op_parse_table:

 /**
- * @brief Table used to parse chars representing cigar operations into their htslib encodings
- *
- * @note: This table should eventually be moved to htslib. Currently htslib dynamically allocates
- *        and fills the equivalent of this table on-demand, which makes little sense.
- */