Refactor the code of random number generation

To date, only one engine for random number generation was possible to
use: /dev/urandom. The code should be refactored so that new engines
could be added easily.
Add WinCrypt for generation of random numbers

Generate passwords on Windows®.
Embed version information into the executable
Merge branch 'windows' into develop