Quasiquotes: add syntactic extractor for assignment/update trees

There are three kinds of assign-like trees:
```
1. Assign(lhs, rhs)                          // $lhs = $rhs
3. AssignOrNamedArg(lhs, rhs)                // $lhs = $rhs
2. Apply(Select(f, nme.update), args :+ rhs) // $f(..$args) = $rhs
```
New syntactic combinator unifies all of them and lets users not to think
about these implementations details.