Added Generic Methods for some watermarks

Another API change while things are still settling. Decrypt method of
EncryptedWatermark now returns the mark, also Decrypt<TextWatermark>()
will return a mark of that type or null.

The ExtractWatermark method now also has a generic version to return a
specified type.