improve clean_io
initial commit for ITP1_3_C
add tests
reinventing swap()
use std::swap()
reinventing swap() is not work! insted of reinventing my_swap()
improve to call by reference
initial commit for ITP1_4_A