Fix off-by-one error parsing DSA public key

I ran into a slice bounds out of range panic. Tired so I just rewrote it.
Implement SIG(0) signing and verification

This is based on @miekg's sig0 branch. That branch diverged from master
and I didn't want to wander off on a rebase.

As implemented there's no allowance for multi-envelope (TCP) support.

TODO:

* unpackUint32() could be moved out and used elsewhere
* tests
* multi-envelope support (if useful)
Test SIG(0)

Tests message signing and verification against
itself, that altered messages don't pass and that
expired messages don't pass.

Static samples generated by something else would
be good to add at some point.
Merge pull request #144 from andrewtj/atj-sig0

SIG(0)