Added the create_polyhashed_entry function.
To improve readability, and to support custom salts, I created the
create_polyhashed_entry function, which generates and updates the salt
and polyhashed value inside a new allocated entry
Added the gennerate_thresholdless_entry function to improve readability
We now support custom salts by using this function for thresholdless
accounts, we can generate the salt from the outside and populate the
entry with it.

This also improves readability of the create_account function
Added salt length value to the pph_entry structure.
We can support shorter salt lengths
Added support for multiple salt lengths on the check_login function
The password length is now stored in the entry data structure.
This does duplicate data, but makes the information more readable, and
adds flexibility to the login-check capabilities
added support for varying salt lengths under unlock_password_data
Added empty declarations of the generate_secret and check_secret funcs
These functions will provide the ability to generate and check if a
secret is valid, in a way that we are able to provide information about
the input's validity when checking for logins.
Added custom error codes for the secret checking function
Added test cases for the secret generation and checking routines
Fixed spacing between test cases
Added the generate_pph_secret function
Added the check_pph_secret function implementation
All tests pass correctly now, we are able to validate secrets, the
functions are not yet added to the API constructs (pph_init_context and
pph_unlock_password_data), they will be added next
Added the generate secret function to the pph_init_context function
Added the check_pph_secret function to the unlock_password_data function
The unlock password data function will return a ERROR_ACCOUNT_IS_INVALID
if the provided passwords didn't producee a valid secret
Added an assert to check whether a correct secret has been created
Changed the random salt generator
The random salt generator now blocks to read the correct number of bytes
so the produces bytes are actually random
Updated README.md
Fixed general readability issues, added the build and installation
parts.
Removed the unnecessary time.h header
Copied the example to the src program
I reflected the compile-time errors of the example in the README too, so
the code looks the same.
Updated the makefile to include the libpolypasshash library