Pass p4 port, client, and password on the command line instead of using env.

The p4 client prefers, in order, arguments on the command line, .p4config
settings, and finally P4* environment variables. This meant that if someone had
a .p4config file, and then specified --p4-port and --p4-client with something
different, it wouldn't actually override their file.

I've changed the client implementation to use -p, -c, and -P arguments to 'p4'
instead of setting things in the environment.

Testing done: Ran unit tests.

Fixes bug 2712.

Reviewed at https://reviews.reviewboard.org/r/5363/
Merge branch 'release-0.5.x'