1. Fixed the s calculation in the encrypt function. s is calculated by
|p|/(|n|-1) + 1. 
2. Fixed the s calculations in other functions that accept the
ciphertext. s is calculated by |c|/|n|.
3. Added functions that accept a random value to use instead of choosing
it randomly. The functions are: encrypt, add, multByConst, reRandomize.
The corresponding function without the random parameter now choose the
random value and call the other function with the chosen value.
4. Fixed the message in the thrown exceptions.
5. Added mod calculation on the result in the following functions: add,
multByConst, reRandomize.