Optimizer: Fixed over-optimization of F_ASSIGN_SELF nodes. F_ASSIGN_SELF nodes weren't marked as OPT_ASSIGNMENT, so they could sometimes be removed by the optimizer. Also fixes some related optimizer and type-checker issues. Thanks to Chris Angelico <rosuav@gmail.com> for the report. Fixes [LysLysKOM 20983743].