Support spaces in client name, allow duplicate CN and append @hostname to cert filenames

Hi Nyr,

I added a few improvement to your script, feel free to merge what you want.

Thank you,
--Hoang

Add
--
* Add an option that allows multiple clients to share same certs (*Duplicate CN*).
* Client name may contain spaces now (e.g., *James Howard Jr*).
* Append `@hostname` to cert filenames to prevent duplication at client's side.
* Add exit status code.

Fix
--
* Alternate port (53) redirection to user's input port instead of port 1194. (Not sure about this!)