tcp: refactor API

This CL contains API breaking changes.

- rename SetBufferedWrite method to Cork
- rename Flush method to Uncork
- rearrage Info struct, add CongestionControl struct
- update API documentation