Implement vote zero knowledge proof

This proof is based on the description given in the original open vote
network article. It verifies that the public vote is on the form
g^(x*y)*g^v for either v=0 or v=1, and where x corresponds to the secret
key sent in the first part of the protocol.

This also updates a few things so that the test keeps working.
Specifically, it changes the hash function used to be simple (insecure)
xor, as the encoding used before was causing major computational
isssues.
5 jobs for master in 9 minutes and 59 seconds (queued for 1 second)
Status Job ID Name Coverage
  Build
passed #125515
au
execution:coq:8.10

00:04:06

passed #125516
au
execution:coq:8.11

00:03:59

passed #125514
au
execution:coq:8.9

00:03:56

passed #125517
au
execution:coq:dev

00:04:34

passed #125518
au
full:coq:8.11

00:02:02