Refactor mark support

PCRE allows extra blocks to be created and used by the program. rust-pcre
currently cannot allow the extra block to be created entirely by the
program because we can't distinguish extra blocks created by PCRE versus
by the program. We can, however, provide a mechanism to allow a PCRE-
created extra block to be customized.

The PCRE_EXTRA_* flag bits are set to indicate which fields are set. This
commit eliminates the generic set_extra_options() method, which in general
is not safe because it would allow certain flags to be set which should
not be set by the program, and instead provides a mechanism for setting
the fields and simultaneously updating the flags. For example, the
PcreExtra::set_match_limit() method sets the match_limit field and updates
the flags to include the PCRE_EXTRA_MATCH_LIMIT bit.