name the union
implement swap(), add tests by Egtra <yusuke.ichinohe@gmail.com>
Merge branch 'kazuho/swap'