Added implementation of Serializable interface. 
We need to provide a way to send commitment messages and decommitment
messages via channel, without necessarily knowing the specific type. To
enable that, the interface should implement serialization.
Added the verifyDecommitment function.
This function gets a pair of commitment and decommitment messages and
verifies them. It should replace the calling of receiveCommitment and
receiveDecommitment functions. The purpose is to enable sending many
commitment and decommitment messages together and then verify each pair
of them.
Deleted unnecessary comment.
1. Added the implementation of generateCommitmentMsg and
generateDecommitmentMsg. Now the commit and the decommit functions call
the corresponding function and them send the returned message.
2. In generateCommitmentMsg - call the elGamal's encrypt function that
gets a specific random instead of the encryptWithSpecificRandomValue
function, which has been deleted.
Added a generateCommitmentMsg function that checks the type of the given
commitValue and calls the super implementation of the function.
1. Changed the name of processDecommitment to verifyDecommitment.
2. verifyDecommitment function - added a check of the input types.
3. verifyDecommitment function - get the commitment message as argument
instead of getting it from the map.
1. Deleted the processDecommitment function, use verifyDecommitment
instead.
2. receiveDecommitment function - before calling verifyDecommitment, get
the commitment message from the map (using the id) and send it the the
verifyDecommitment.
1. Changed the default hash function from BC implementation to OpenSSL
implementation.
2. added implementations of generateCommitmentMsg,
generateDecommitmentMsg (committer) and verifyDecommitment (receiver)
functions.
Deleted the functions sampleRandomCommitValue, generateCommitValue,
generateBytesFromCommitValue. These function have the same
implementation in the super classes thus, they shouldn't be here too.
1. Changed the Default hash function to use openSSL implementation
instead of BC.
2. Added implementation of verifyDecommitment.
3. Changed the value in the map from byte[] to
CmtSimpleHashCommitmentMessage. This is because the receiveDecommitemnt
shout get the commitment message from the map and send it to the
verifyDecommitment function as a commitment message and not as a byte
array.
Added the additional functions, without implement.