consensus: guard against openssl's new strict DER checks
consensus: guard against openssl's new strict DER checks

New versions of OpenSSL will reject non-canonical DER signatures. However,
it'll happily decode them. Decode then re-encode before verification in order
to ensure that it is properly consumed.

Rebased-from: 488ed32f2ada1d1dd108fc245d025c4d5f252783

fail immediately on an empty signature

Rebased-from: 8dccba6a45db0466370726ed462b9da2eae43bce

IlfirinCano/shavercoin,brishtiteveja/sherlockholmescoin,greencoin-dev/greencoin-dev,Czarcoin/czarcoin,IlfirinCano/shavercoin,stamhe/litecoin,IlfirinIlfirin/shavercoin,brishtiteveja/sherlockholmescoin,IlfirinIlfirin/shavercoin,Electronic-Gulden-Foundation/egulden,mooncoin-project/mooncoin-landann,greencoin-dev/greencoin-dev,ccoin-project/ccoin,IlfirinIlfirin/shavercoin,stamhe/litecoin,Tetcoin/tetcoin,ccoin-project/ccoin,Tetcoin/tetcoin,IlfirinCano/shavercoin,Rav3nPL/doubloons-08,IlfirinIlfirin/shavercoin,Rav3nPL/doubloons-08,greencoin-dev/greencoin-dev,IlfirinCano/shavercoin,mooncoin-project/mooncoin-landann,koharjidan/litecoin,Rav3nPL/doubloons-08,Tetcoin/tetcoin,stamhe/litecoin,Rav3nPL/doubloons-08,koharjidan/litecoin,IlfirinIlfirin/shavercoin,koharjidan/litecoin,koharjidan/litecoin,IlfirinCano/shavercoin,mooncoin-project/mooncoin-landann,Electronic-Gulden-Foundation/egulden,stamhe/litecoin,koharjidan/litecoin,greencoin-dev/greencoin-dev,Electronic-Gulden-Foundation/egulden,Electronic-Gulden-Foundation/egulden,Electronic-Gulden-Foundation/egulden,brishtiteveja/sherlockholmescoin,brishtiteveja/sherlockholmescoin,mooncoin-project/mooncoin-landann,ccoin-project/ccoin,Czarcoin/czarcoin,Electronic-Gulden-Foundation/egulden,greencoin-dev/greencoin-dev,koharjidan/litecoin,mooncoin-project/mooncoin-landann,Tetcoin/tetcoin,Czarcoin/czarcoin,brishtiteveja/sherlockholmescoin,Tetcoin/tetcoin,Czarcoin/czarcoin,ccoin-project/ccoin,Rav3nPL/doubloons-08,Czarcoin/czarcoin