update assignment and copy constructor templates for fc::optional