Support for multiple digest algorithms in signature verification

Previous pull requests were just a preparation for this :smile: 

SOAP messages may be signed with variety of signature and digest algorithms, and while signature algorithm is hardcoded in keypair, digest algorithms for both digital signature creation/verification and XML nodes digest calculation can be changed at will (and independently). Information about used algorithms is stored in signed XML itself.

To support this we will:

 1. Detect used digest algorithms for node digesting and signature verification
 2. Add support for SHA256 and GOST R 34.11-94 algorithms out of the box.
 3. Add possibility to add custom digest algorithms on the fly.
 4. Test for SHA256 signature and node digests.
 5. Test for GOST R 34.11-94 node digests (It's hard to test GOST signing as it requires patched Ruby, see: https://bugs.ruby-lang.org/issues/9830 )