tighten up `Algorithm` ASN grammar

... its `params` field is notoriously underspecified. We used to accept either
absent or null params for algorithms that don't have params; this code accepts
only explicit null.

See https://www.cdc.informatik.tu-darmstadt.de/reports/reports/sigflaw.pdf
section 5.

N.B. We weren't realistically vulnerable before since we used to accept only two
representations for hash algorithms, but better safe than sorry.