Allow timeouts to be set dynamically.

I'm not sure which is correct to use here.
```
connection.getSourceChannel().getOption(Options.READ_TIMEOUT);
```
or
```
connection.getOption(Options.READ_TIMEOUT);
```


This could maybe be refactored out it now seems to be used in about four places.