Better error checking on private key and csr.  Also, pull in file names ...

...instead of pointers.
The point of those checks is to provide a more user-friendly error message.  Python's default IOError message for each of those cases is as follows:

```
[Errno 2] No such file or directory: 'myfile.txt'

[Errno 13] Permission denied: 'myfile.txt'
```
By explicitly checking for and raising an exception in each instance, we can provide something that 1) fits argparse's error message format and 2) provide more verbosity for the potentially non-technical people that will be using this script.