cleaning up the types of Connection.

When I was brushing up documentation, I noticed that the signature of `connSendFile` have `Cleaner`, which is internal information. Due to this, we need to prepare `dummyXXX`. It was me who introduced `Cleaner` to `connSendFile` and I admit that it's ugly.

To fix this, I introduce one more field `connSendFileOverride`. This holds `Socket` and suggests `connSendFile` can be overridden. I think this API is cleaner than before.

@snoyberg I would like to ask two things:

- Please review this patch and give a look at haddock documentation.  If you agree with this change, please merge.
- `Cleaner` is not proper name anymore. `InternalInfo`, for instance, is much better. Do you agree with this change. Of course, suggestions on more proper naming would be appreiciated.