Add some tests for exception safety. (#6)
Add some tests for exception safety. (#6)

1. source is unchanged if an exception occurs in the copy constructor.
2. destination is unchanged if an exception occurs in the copy
   constructor.
3. no memory is leaked if an exception occurs in the copy constructor.
4. source is unchanged if an exception occurs in the copier.
5. destination is unchanged if an exception occurs in the copier.
6. no memory is leaked if an exception occurs in the copier.
jbcoe/polymorphic_value,jbcoe/polymorphic_value,jbcoe/polymorphic_value