Validate publication dataset name, primary dataset name and request name. Fixes #4257.

This pull request is the same as #4272, which I had to "rebase" it. I copy/paste below the comment I made on that pull request.

The validity check that I added for General.requestName is maybe not needed, because it is already done in the server...
I just tried specifying a General.requestName with a white space and I get:

Will use configuration file crabConfig_test.py
WARNING: Incompatible CRABClient version "3.3.9"
Server is saying that compatible versions are: ['3.3.9.pre2']
Sending the request to the server
Error contacting the server.
Server answered with: Invalid input parameter
Reason is: Incorrect 'General.requestName' parameter
Log file is /afs/cern.ch/work/a/atanasi/CRAB3-tutorial/CMSSW_7_0_5/src/tests_vmatanasi2/crab_test_publishDataName_check_1 2/crab.log

The only improvement would be the message to the user, which is a bit clearer in the check I added.
Tell me @mmascher if you want me to remove the requestName validity check.