Sam: constructors for optional field and optional field values

[Sam.optional_field] is a private type and the only way to build a
value is through the [Sam.parse_optional_field] function, which is not
adequate when parsing BAM.

Added a constructor for [optional_field] which takes
[optional_field_value]s. This is also a private type, so
invariant-checking constructors and parsers were added too.
Merge pull request #141 from pveber/master

Sam: a constructor for optional field
Sam: a slightly more precise typing of optional field values
Sam: remove unused opt_field_A_re

No longer used due to db4644a847af610738704c89b3a18a3ed2b24526.
Merge branch 'master' into cosmic
Cosmic: add interface file