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.
Showing with 231 additions and 106 deletions