Modify main code for packaging
Modify main code for packaging

Add main() function that setuptools can use as an executable entry point.

Also pass the `parser` variable to `validate_options()`. Since the parser is
now created within the function scope of `main()` it cannot be seen by
`validate_options()` anymore.

amiryal/XKCD-password-generator,amiryal/XKCD-password-generator