Renamed types to include "Closer" name; added implementation check to testing.

- Renamed Writer -> WriteCloser
- Renamed ReadWriter -> ReadWriteCloser
- Added test to verify at compile time that the types implement their
  io counterparts.