HostKeys.load() now accepts StringIO objects.

Currently, Paramiko loads the host key only from a existing file. I think that this is a little bit too limited. Therefore, it now also accepts io.StringIO objects.

Use cases could, for example, be:
- On Windows, convert the Putty known hosts to a OpenSSH style known hosts file and then load it, without the need to have a physical file. (Also see my issue #384, which can now be implemented better)
- Store the host key directly in a Python script or in some other file, making it more portable and eliminates the need to rely on the .ssh/known_hosts file.

Usage can be something like this:

```python
import io, paramiko
keys = io.StringIO("The content of the known_host file")
ssh = paramiko.SSHClient()
ssh.load_system_host_keys(keys)
```

Please bear in mind that my programming skills are rather limited and quite basic. I guess that I have not thought of some errors, so maybe it needs some checking.

It would be nice if it could be integrated into the master branch, though :)