rhbz1157359 - fix a few java client issues

- --version or -v gives no output (due to non-flushed buffered output)
- single --help or help or -h not giving a list of commands (same as above)
- --logHttp is not recognized (annotation at wrong place). Also changed it to --log-http to follow convention
- redirect will produce friendlier error message
What's the reason for closing stdout explicitly?  It doesn't seem like it will do anything except potentially make testing this method more difficult by introducing a side effect.

If it's to get around buffering, couldn't you just say:

    out.flush()
    err.flush()