Allow the user to set the client id in the SSH version exchange

There are various situations in which a developer may want to display a different version string in the protocol version exchange. This patch adds a function in Transport to allow this. The patch also alters demo.py to show usage.

Below are Wireshark screenshots showing the version string before and after this patch.
![before_patch](https://f.cloud.github.com/assets/787916/2249083/f882fe14-9d80-11e3-97cb-8bf95d7e5f45.png)
![after_patch](https://f.cloud.github.com/assets/787916/2249088/fd74a1f2-9d80-11e3-912d-3ad5a5474bc1.png)